mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-27 03:13:43 +03:00
02a28ff028
Added tests for basic notifications process.
2209 lines
72 KiB
Plaintext
2209 lines
72 KiB
Plaintext
2010-04-20 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* lib/pqpath.c: Fixed reference leak in notify reception.
|
||
|
||
* Notifies are collected if available after every query execution.
|
||
|
||
2010-04-13 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* lib/extensions.py: DECIMAL typecaster imported from _psycopg.
|
||
|
||
* lib/extensions.py: PY* and MX* time typecaster imported from _psycopg.
|
||
|
||
2010-04-11 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* psycopg/connection_type.c: Correctly parse keywords in connect().
|
||
|
||
2010-04-07 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* psycopg/pqpath.c: Ensure running COPY in blocking mode.
|
||
|
||
* psycopg/pqpath.c: Free the GIL in blocking operations in V2 COPY FROM.
|
||
|
||
* psycopg/pqpath.c: Evaluate Python objects only once outside the COPY I/O
|
||
loops.
|
||
|
||
2010-04-05 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Fixed problem with asynchronous NOTIFYs.
|
||
|
||
* Integrated async pacthes from Jan's git tree.
|
||
|
||
2010-03-13 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.14.
|
||
|
||
2010-03-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.py: one-liner from Devrim GÜNDÜZ to build with PostgreSQL
|
||
alpha.
|
||
|
||
2010-02-28 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapt_decimal.c: Python 2.4 decimal type does not support
|
||
.isfinite() and two different calls to ._isinfinity() and ._isnan() are
|
||
required. This fixes both a test failure and a segfault.
|
||
|
||
2010-02-15 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Added new Decimal adapter that correctly converts NaN and infinity
|
||
to PostgreSQL NaN numeric values. Also added tests.
|
||
|
||
2010-02-15 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* lib/errorcodes.py: Updated to PostgreSQL 8.4; added lookup() function.
|
||
|
||
2010-02-12 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* Stop the loop variable used to create __all__ leaking in the module.
|
||
|
||
* Fixed Inet constructor.
|
||
|
||
* Fixed docstring for 'QueryCanceledError' exception.
|
||
|
||
2010-02-10 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/extensions.py: Binary was not imported from _psycopg; now it is
|
||
|
||
* lib/__init__: SQL_IN adapter is now automatically registered.
|
||
|
||
* ZPsycopgDA/db.py: removed logging debug calls; psycopg does
|
||
not depend on the logger module.
|
||
|
||
2010-02-12 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* License migration: psycopg2 is now LGPL3 + OpenSSL exception.
|
||
|
||
* TODO file was never updated so lets remove it.
|
||
|
||
2010-02-10 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/extras.py: fixed register_tstz_w_secs() error as reported by
|
||
Karsten Hilbert.
|
||
|
||
2009-11-25 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/microprotocols.c: "can't adapt" message now includes full
|
||
type information (adapted patch from Eric Chamberlain).
|
||
|
||
* tests/types_basic.py: fixed test broken by float precision fix.
|
||
|
||
2009-11-09 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapter_pfloat.c: applied patch from Remy Blankto fix float
|
||
loss of precision.
|
||
|
||
2009-10-04 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.13.
|
||
|
||
* setup.py: applied patch from Christian Jacobsen to link to static
|
||
version of libpq.
|
||
|
||
* lib/extras.py: added support for UUID arrays.
|
||
|
||
* psycopg/connection_int.c: applied patch from Richard Davies to avoid
|
||
deadlocks with multiple threads using the same connection.
|
||
|
||
2009-08-08 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.12.
|
||
|
||
* psycopg/lobject_int.c: fixed problem with writing large data using
|
||
lo_write: apparently the large objects code does not like non-blocking
|
||
connections.
|
||
|
||
* setup.py: fixed version detection for PostgreSQL rc, as
|
||
suggested by Sok Ann Yap.
|
||
|
||
* ZPsycopgDA/db.py: applied serialization error retry from Brian
|
||
Sutherland.
|
||
|
||
* Implemented connection.reset() method to reset the connection to
|
||
well-know default parameters. This is much faster than closing and
|
||
reopening the connection. (Suggested by a bug report by Glenn
|
||
Maynard.)
|
||
|
||
* psycopg/cursor_type.c: unified size macro definitions in COPY TO
|
||
and COPY FROM operations: now the buffer for column names is 8192
|
||
bytes that should be enough even for very large tables.
|
||
|
||
2009-05-19 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch from Robert Munro to fix version check
|
||
in ZPsycopgDA.
|
||
|
||
2009-05-10 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.11.
|
||
|
||
* lib/extras.py: fixed crash in fetchone() when prefetching using
|
||
a RealDictCursor.
|
||
|
||
* psycopg/cursor_ext.c: now raise correct exception when fetching
|
||
using a custom row factory results in an error.
|
||
|
||
* lib/extras.py: applied DictRow "diet" patch from Marko Kreen.
|
||
|
||
2009-04-21 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.py: applied patch from Elvis Pranskevichus to make
|
||
PostgreSQL version detection more robust.
|
||
|
||
2009-04-20 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.10.
|
||
|
||
* psycopg/cursor_type.c: patch from Gangadharan to avoid double
|
||
free of the cursor when the connection that creates it is closed
|
||
implicitly by dealloc.
|
||
|
||
2009-04-19 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/connection_type.c: patch from Gangadharan to avoid double
|
||
free of the connection object when calling close() implicitly.
|
||
|
||
* psycopg/connection_type.c: patch from Marko Kreen to implement
|
||
get_parameter_status().
|
||
|
||
* psycopg/connection.*: exposed protocol_version and
|
||
server_version attributes on the connection object.
|
||
|
||
* lib/extras.py: patch from Marko Kreen to implement missing dict
|
||
methods in DictRow.
|
||
|
||
2009-04-04 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* connection_int.c(conn_notice_callback): removed all Python
|
||
calls because conn_notice_callback() can be called without a lock
|
||
on the GIL. Moved processing and cleanup of notices into their
|
||
own functions that are called while holding the GIL.
|
||
|
||
2009-04-01 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch from Menno Smits to fix failures in test_dates
|
||
when executed in older version of Python.
|
||
|
||
* Applied patch from Menno Smits to fix lobject test failures.
|
||
|
||
2009-03-08 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* microprotocols.c: None is always adapted to NULL to avoid
|
||
errors when calling adapt on nested types without first checking
|
||
for None.
|
||
|
||
2009-03-02 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied modified patch from Karsten Hilbert to provide a
|
||
type-caster able to parse times with seconds in the time zone.
|
||
|
||
* Applied patch from Menno Smits to avoid problems with DictCursor
|
||
when the query is executed by a named cursor. Also added Menno's
|
||
tests and uniformed other DictCursor tests.
|
||
|
||
* psycopg/psycopgmodule.c: fixed unwanted exception when passing an
|
||
explicit None to register_type().
|
||
|
||
* psycopg/config.h: applied patch from Jason Erickson to build
|
||
with MSVC. Solaris version of isinf() is now a macro.
|
||
|
||
2009-02-27 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/config.h: added check to provide compatible isinf()
|
||
for Solaris (thanks to Jeremy Mason.)
|
||
|
||
2009-02-23 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.9.
|
||
|
||
2009-02-17 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/utils.c (psycopg_escape_string): same here.
|
||
|
||
* psycopg/adapter_binary.c (binary_escape): simplify PostgreSQL
|
||
version check.
|
||
|
||
* setup.py (psycopg_build_ext.finalize_options): use a single
|
||
define of the PostgreSQL version in a form that can easily be used
|
||
by #ifdefs.
|
||
|
||
* tests/test_dates.py (DatetimeTests, mxDateTimeTests): full test
|
||
coverage for datetime and time strings with and without time zone
|
||
information.
|
||
|
||
* psycopg/typecast_datetime.c (typecast_PYDATETIME_cast): adjust
|
||
to handle the changes in typecast_parse_time.
|
||
(typecast_PYTIME_cast): add support for time zone aware time
|
||
values.
|
||
|
||
* psycopg/typecast_mxdatetime.c (typecast_MXDATE_cast): make sure
|
||
that values with time zones are correctly processed (even though
|
||
that means ignoring the time zone value).
|
||
(typecast_MXTIME_cast): same here.
|
||
|
||
* psycopg/typecast.c (typecast_parse_time): Update method to parse
|
||
second resolution timezone offsets.
|
||
|
||
* psycopg/typecast.c (typecast_parse_time): Fix up handling of
|
||
negative timezone offsets with a non-zero minutes field.
|
||
|
||
* tests/test_dates.py (DatetimeTests): Add tests for time zone
|
||
parsing. The test for HH:MM:SS time zones is disabled because we
|
||
don't currently support it.
|
||
|
||
2009-02-16 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* FreeBSD now has round(). Modified config.h as suggested by
|
||
Jeroen Ruigrok van der Werven.
|
||
|
||
2009-02-06 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch by Markus Demleitner to make executemany() return
|
||
the sum of modified rows by executed statements or -1 if any one
|
||
statement returns it. This is still DBAPI-2.0 compliant.
|
||
|
||
2009-01-23 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Fixed problem mailed by Markus Demleitner about Python to
|
||
PostgreSQL conversions of "nan" and "inf" floats resulting in
|
||
backend errors. Added the new psycopg2.extensions.Float adapter
|
||
that correctly handle both values and unit tests. (The opposite
|
||
conversion was already working.)
|
||
|
||
2009-01-20 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Fixed problem reported by Lawrence Oluyede where
|
||
register_type() didn't work on connection and cursors
|
||
suclasses.
|
||
|
||
2009-01-10 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/cursor_type.c: cursor.isready() now raise an exception
|
||
when the libpq PQconsumeInput() call fails.
|
||
|
||
2008-12-04 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/lobject_type.c: fixed memory leak. The patch was kindly
|
||
sent from a psycopg user but I wrongly deleted the email so no
|
||
kudos (and I had to fix the problem by myself!)
|
||
|
||
2008-11-25 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/cursor_type.c: integrated patch from Alejandro Dubrovsky.
|
||
Note that the statically allocated buffer should probably go away
|
||
in favor of always allocating the buffer dinamically.
|
||
|
||
* psycopg/utils.c: modified patch from Alejandro Dubrovsky to
|
||
support quoted separators in COPY queries: now all the string
|
||
quoting code is in utils.c and the same function is used by
|
||
qstrings and everything else (like the COPY code.)
|
||
|
||
2008-09-24 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/extras.py: added inet support and related tests.
|
||
|
||
2008-09-23 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/psycopg.h (NotSupportedError_doc): clean up
|
||
spelling/grammar a bit, using exception description from the PEP.
|
||
|
||
2008-09-23 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch from Brian Sutherland that fixes NULL
|
||
valus in UUID support.
|
||
|
||
2008-09-19 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/extras.py: added UUID support, modeled after the code
|
||
sent by Brian Sutherland.
|
||
|
||
2008-09-16 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.8.
|
||
|
||
2008-07-26 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/connection_type.c: merged get_backend_pid() method
|
||
by Casey Duncan.
|
||
|
||
2008-07-23 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/lobject_type.c (lobject_setup): use
|
||
FORMAT_CODE_PY_SSIZE_T in Dprintf() call for 64-bit compatibility
|
||
when using Python 2.5 or later.
|
||
(lobject_dealloc): same here.
|
||
|
||
2008-07-18 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/adapter_qstring.c (qstring_traverse): add cyclic GC
|
||
traversal for quoted string adapters.
|
||
|
||
* psycopg/adapter_pboolean.c (pboolean_traverse): add cyclic GC
|
||
traversal for boolean adapters.
|
||
|
||
* psycopg/adapter_mxdatetime.c (mxdatetime_traverse): add cyclic
|
||
GC traversal for mxdatetime adapters.
|
||
|
||
* psycopg/adapter_datetime.c (pydatetime_traverse): add cyclic GC
|
||
traversal for datetime adapters.
|
||
|
||
2008-07-01 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/adapter_binary.c (binary_traverse): add cyclic GC
|
||
traversal for binary adapters.
|
||
|
||
* psycopg/adapter_asis.c (asis_traverse): add cyclic GC traversal
|
||
for AsIs adapters.
|
||
|
||
* psycopg/adapter_list.c (list_traverse): add cyclic GC traversal
|
||
for list adapters.
|
||
|
||
2008-05-28 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/cursor_type.c (cursor_setup): incref before setting
|
||
attributes, to make things GC-safe.
|
||
|
||
* psycopg/cursor_int.c (curs_reset): make clearing of description
|
||
and casts attributes GC-safe.
|
||
|
||
* psycopg/typecast.c (typecast_traverse): implement cyclic GC
|
||
traversal for typecasters.
|
||
|
||
* psycopg/connection_type.c:
|
||
* psycopg/cursor_type.c: add support for cyclic GC traversal (no
|
||
support for clearing).
|
||
|
||
* psycopg/python.h: add definitions for Py_CLEAR() and Py_VISIT()
|
||
for compatibility with old versions of Python.
|
||
|
||
2008-06-28 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.py: fixed problem with spaces in pg_config path.
|
||
|
||
2008-05-27 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/pqpath.c: better error checks in _pq_copy_in_v3 to
|
||
avoid calling blocking libpq functions when the connection to
|
||
the server has been broken
|
||
|
||
2008-05-19 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/cursor_type.c: fixed memory leak in .executemany(); on
|
||
error "iter" was not dec'reffed.
|
||
|
||
2008-05-06 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/lobject.h (lobjectObject): remove "mode" struct member,
|
||
since it was unused.
|
||
|
||
* psycopg/lobject_*.c: replace uses of the closed struct member,
|
||
and change the Python level attribute to a getset.
|
||
|
||
* psycopg/lobject.h (lobjectObject): remove the closed member,
|
||
since "fd < 0" gives us the same information. Reorder the struct
|
||
members for better packing.
|
||
|
||
* psycopg/lobject*: const'ify the code.
|
||
|
||
* tests/test_lobject.py (LargeObjectTests): add more tests,
|
||
including behaviour on closed lobjects and stale lobjects.
|
||
|
||
* psycopg/lobject_type.c (psyco_lobj_close): don't mark the
|
||
connection closed here because it is done by
|
||
lobject_close_locked().
|
||
|
||
* psycopg/lobject_int.c (lobject_open): mark objects as not closed
|
||
if we successfully open them.
|
||
(lobject_close_locked): mark the lobject closed here.
|
||
(lobject_export): ensure we are in a transaction, since
|
||
lo_export() issues multiple queries.
|
||
|
||
* psycopg/lobject_type.c (lobject_setup): make lobjects start closed.
|
||
|
||
2008-05-05 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/lobject.h: don't export the lobjectType symbol.
|
||
|
||
2008-05-05 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Fixed sun build problem by adding "sun" to config.h checks.
|
||
|
||
2008-05-05 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/pqpath.c (pq_complete_error): get rid of double free
|
||
error in case when pgres is NULL.
|
||
|
||
* tests/test_lobject.py: add some basic tests for large object
|
||
code.
|
||
|
||
* psycopg/lobject*.[ch]: port the large object code to work with
|
||
current psycopg code.
|
||
|
||
2006-09-01 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/connection_type.c: merged in double mutex destroy patch
|
||
from Joerg Sonnenberger.
|
||
|
||
* Implemented large objects support.
|
||
|
||
* psycopg/connection_int.c: removed increment of self->mark,
|
||
now it is done directly in pqpath.c to make sure even the
|
||
large object support gets it.
|
||
|
||
* Starting 2.1 development.
|
||
|
||
2008-04-21 James Henstridge <james@jamesh.id.au>
|
||
|
||
* tests/test_quote.py (QuotingTestCase.test_unicode): If the
|
||
server encoding is not UTF8, skip the unicode test and emit a
|
||
warning.
|
||
|
||
2008-04-21 Jorgen Austvik <Jorgen.Austvik@sun.com>
|
||
|
||
* tests/*.py: use the DSN constructed in tests/__init__.py.
|
||
|
||
* tests/__init__.py: allow setting the host, port and user for the
|
||
DSN used by the tests through the environment.
|
||
|
||
2008-03-17 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.7.
|
||
|
||
2008-03-31 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/connection_type.c (connection_dealloc): free
|
||
connection->encoding with free() instead of PyMem_Free().
|
||
|
||
* psycopg/connection_int.c (conn_connect): use malloc() to
|
||
allocate connection->encoding instead of PyMem_Malloc(), since it
|
||
is freed in other places with free() and assigned to with
|
||
strdup().
|
||
|
||
2008-03-26 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/typecast.c (typecast_from_c): fix up some reference
|
||
leaks. This leak affected a bounded set of objects, so doesn't
|
||
account for any gradual leaks.
|
||
|
||
2008-03-19 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/connection_int.c (conn_notice_callback): don't leak
|
||
notice messages.
|
||
|
||
2008-03-17 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapter_datetime.c: fixed double decref when using
|
||
a PyObject as a parameter in a nested call (line 415).
|
||
|
||
2008-03-17 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/typecast.c (typecast_parse_time): give the correct
|
||
return value for partially parsed time values.
|
||
|
||
* psycopg/typecast_mxdatetime.c (typecast_MXDATE_cast): return
|
||
NULL after setting DataError. Also, don't treat it as an error if
|
||
typecast_parse_time() returns 0 (as might happen if the remainder
|
||
of the string is " BC").
|
||
|
||
* psycopg/typecast_datetime.c (typecast_PYDATE_cast): return NULL
|
||
after setting DataError.
|
||
(typecast_PYDATETIME_cast): same here.
|
||
(typecast_PYTIME_cast): same here.
|
||
|
||
* tests/test_dates.py
|
||
(CommonDatetimeTestsMixin.test_parse_incomplete_date): test that
|
||
parsing incomplete date values results in DataError.
|
||
(CommonDatetimeTestsMixin.test_parse_incomplete_time): same for
|
||
times.
|
||
(CommonDatetimeTestsMixin.test_parse_incomplete_time): same for
|
||
datetimes.
|
||
|
||
2008-03-07 Jason Erickson <jerickso@stickpeople.com>
|
||
|
||
* psycopg/pqpath.c (pq_raise): if PSYCOPG_EXTENSIONS is not
|
||
defined, raise OperationalError rather than
|
||
TransactionRollbackError for deadlock or serialisation errors for
|
||
protocol versions less than 3.
|
||
|
||
* psycopg/psycopgmodule.c (psyco_connect): fix off by one error in
|
||
calculating the length of the DSN.
|
||
|
||
2008-03-07 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/pqpath.c (_pq_fetch_tuples): Don't call Python APIs
|
||
without holding the GIL.
|
||
|
||
2008-02-27 James Henstridge <james@jamesh.id.au>
|
||
|
||
* NEWS: add some draft NEWS items for a 2.0.7 release.
|
||
|
||
* runtests.py: add a harness to run all the psycopg tests against
|
||
the version built by distutils.
|
||
|
||
2008-01-22 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/typecast.c (typecast_pydatetime): make array static.
|
||
(typecast_mxdatetime): same here.
|
||
|
||
* psycopg/typecast_builtins.c (typecast_builtins): make array
|
||
static.
|
||
|
||
* psycopg/psycopgmodule.c: add hidden visibility to a bunch of
|
||
global variables here.
|
||
|
||
* psycopg/psycopg.h: add set QueryCanceledError and
|
||
TransactionRollbackError to hidden visibility.
|
||
|
||
* psycopg/*.[ch]: add const qualifier to various string arguments
|
||
to functions (typecast functions and conn_switch_isolation_level).
|
||
|
||
2008-01-21 James Henstridge <james@jamesh.id.au>
|
||
|
||
* setup.cfg (define): remove PSYCOPG_DISPLAY_SIZE from default
|
||
list of defines, as discussed on mailing list. It slows down
|
||
queries with very little benefit.
|
||
|
||
* psycypg/*.h: apply HIDDEN to all global variables and functions
|
||
that should not be exported from the module. This results in a 5%
|
||
reduction in code size and shortens the dynamic symbol table.
|
||
|
||
* psycopg/config.h: If GCC >= 4.0 is installed, define the HIDDEN
|
||
symbol to apply the "hidden" visibility attribute.
|
||
|
||
2008-01-19 James Henstridge <james@jamesh.id.au>
|
||
|
||
* tests/test_connection.py (ConnectionTests): add simple tests for
|
||
the Connection and Cursor "closed" attributes.
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_get_closed): add a "closed"
|
||
attribute to cursors. It will be True if either the cursor or its
|
||
associated connection are closed. This fixes bug #164.
|
||
|
||
* psycopg/pqpath.c (pq_raise): remove unused arguments to
|
||
function, and simplify.
|
||
(pq_resolve_critical): make function static, since it isn't being
|
||
used outside of pqpath.c any more.
|
||
|
||
2008-01-17 James Henstridge <james@jamesh.id.au>
|
||
|
||
* ZPsycopgDA/DA.py (Connection.__init__): Default the encoding to
|
||
UTF-8, fixing bug #190.
|
||
(App.ImageFile): simplify ImageFile import using patch from
|
||
chrism, fixing bug #198.
|
||
|
||
2008-01-16 James Henstridge <james@jamesh.id.au>
|
||
|
||
* tests/test_transaction.py (DeadlockSerializationTestCase): port
|
||
over some tests for serialisation and deadlock errors,
|
||
demonstrating that TransactionRollbackError is generated.
|
||
(QueryCancelationTests): add a test to show that
|
||
QueryCanceledError is raised on statement timeouts.
|
||
|
||
* psycopg2da/adapter.py (_handle_psycopg_exception): rather than
|
||
checking exception messages, check for TransactionRollbackError.
|
||
|
||
* psycopg/pqpath.c (exception_from_sqlstate): return
|
||
TransactionRollbackError for 40xxx errors, and QueryCanceledError
|
||
for 57014 errors.
|
||
(pq_raise): If we are using an old server, use
|
||
TransactionRollbackError if the error message contains "could not
|
||
serialize" or "deadlock detected".
|
||
|
||
* psycopg/psycopgmodule.c (_psyco_connect_fill_exc): remove
|
||
function, since we no longer need to store pointers to the
|
||
exceptions in the connection. This also fixes a reference leak.
|
||
(psyco_connect): remove _psyco_connect_fill_exc() function call.
|
||
|
||
* psycopg/connection.h (connectionObject): remove exception
|
||
members from struct.
|
||
|
||
* psycopg/connection_type.c (connectionObject_getsets): modify the
|
||
exception attributes on the connection object from members to
|
||
getsets. This reduces the size of the struct.
|
||
|
||
* lib/extensions.py: import the two new extensions.
|
||
|
||
* psycopg/psycopgmodule.c (exctable): add new QueryCanceledError
|
||
and TransactionRollbackError exceptions.
|
||
|
||
2008-01-16 James Henstridge <james@jamesh.id.au>
|
||
|
||
* tests/__init__.py (test_suite): add date tests to test suite.
|
||
|
||
* tests/test_dates.py: add tests for date/time typecasting and
|
||
adaption.
|
||
|
||
* psycopg/adapter_mxdatetime.c (mxdatetime_str): add support for
|
||
outputting BC dates (which involves switching them to one-based
|
||
dates). Also remove broken handling of microseconds.
|
||
|
||
* psycopg/typecast.c (typecast_parse_date): if the string ends
|
||
with "BC" adjust the year value to be a zero-based BC value as
|
||
used by mx.DateTime (datetime doesn't support BC dates).
|
||
(typecast_parse_time): ignore ' ', 'B' and 'C' in time strings
|
||
rather than treating them as part of the seconds part of the time.
|
||
|
||
2008-01-14 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/typecast_array.c (typecast_array_scan): set an initial
|
||
value for quotes to keep gcc happy.
|
||
|
||
* psycopg/*.c: add missing static modifier on many functions.
|
||
|
||
2008-01-12 James Henstridge <james@jamesh.id.au>
|
||
|
||
* tests/test_transaction.py
|
||
(TransactionTestCase.test_failed_commit): Expect IntegrityError
|
||
instead of OperationalError.
|
||
|
||
* psycopg/pqpath.c (exception_from_sqlstate): new function that
|
||
converts an SQLSTATE error code to the corresponding exception
|
||
class.
|
||
(pq_raise): use exception_from_sqlstate() to pick which exception
|
||
to use when working with protocol version 3.
|
||
(pq_complete_error): Let pq_raise() pick an appropriate exception
|
||
rather than forcing OperationalError.
|
||
|
||
2008-01-11 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/adapter_binary.c (binary_quote): apply Brandon Rhodes'
|
||
patch from ticket #209 to check return value from
|
||
PyObject_AsCharBuffer(). This fixes the segfault.
|
||
(binary_quote): switch from PyObject_AsCharBuffer() to
|
||
PyObject_AsReadBuffer() to support buffer objects that don't
|
||
implement the bf_getcharbuf protocol.
|
||
|
||
* tests/types_basic.py (TypesBasicTests.testBinary): Test round
|
||
tripping of bytea buffers. Currently segfaults.
|
||
|
||
* psycopg/connection_int.c (conn_close): fix for new
|
||
pq_abort_locked() prototype.
|
||
(conn_switch_isolation_level): fix for new pq_abort_locked()
|
||
prototype, and use pq_complete_error() to show error message.
|
||
(conn_set_client_encoding): same here.
|
||
|
||
* psycopg/pqpath.c (pq_execute_command_locked): remove static
|
||
modifier.
|
||
(pq_complete_error): same here.
|
||
(pq_abort_locked): add pgres and error arguments.
|
||
(pq_abort): call pq_abort_locked() to reduce code duplication.
|
||
|
||
2007-12-23 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/pqpath.c (pq_execute_command_locked): add an error
|
||
argument to hold an error when no PGresult is returned by PQexec,
|
||
rather than using pq_set_critical().
|
||
(pq_complete_error): new function that converts the error returned
|
||
by pq_execute_command_locked() to a Python exception.
|
||
(pq_begin_locked): add error argument.
|
||
(pq_commit): use pq_complete_error().
|
||
(pq_abort): use pq_complete_error().
|
||
(pq_abort_locked): always call pq_set_critical() on error, and
|
||
clear the error message from pq_execute_command_locked().
|
||
(pq_execute): use pq_complete_error() to handle the error from
|
||
pq_begin_locked().
|
||
|
||
* psycopg/pqpath.c (pq_begin): remove unused function.
|
||
|
||
* psycopg/connection_type.c (psyco_conn_commit): if conn_commit()
|
||
raises an error, just return NULL, since it is now setting an
|
||
exception itself.
|
||
(psyco_conn_rollback): same here.
|
||
|
||
* psycopg/connection_int.c (conn_commit): don't drop GIL and lock
|
||
connection before calling pq_commit().
|
||
(conn_rollback): same here.
|
||
(conn_close): use pq_abort_locked().
|
||
(conn_switch_isolation_level): same here.
|
||
(conn_set_client_encoding): same here.
|
||
|
||
* psycopg/pqpath.h: add prototype for pq_abort_locked().
|
||
|
||
* psycopg/pqpath.c (pq_commit): convert function to run with GIL
|
||
held, and handle errors appropriately.
|
||
(pq_abort): same here.
|
||
(pq_abort_locked): new function to abort a locked connection.
|
||
|
||
2007-12-22 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/pqpath.c (pq_raise): add a "pgres" argument so we can
|
||
generate nice errors not related to a particular cursor.
|
||
(pq_execute): use pq_begin_locked() rather than pq_begin(). Use
|
||
pq_raise() to handle any errors from it.
|
||
|
||
* psycopg/pqpath.c (pq_execute_command_locked): helper function
|
||
used to execute a command-style query on a locked connection.
|
||
(pq_begin_locked): a variant of pq_begin() that uses
|
||
pq_execute_command_locked().
|
||
(pq_begin): rewrite to use pq_begin_locked().
|
||
|
||
2007-12-22 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/config.h: only print debug messages if
|
||
psycopg_debug_enabled is true.
|
||
|
||
* psycopg/psycopgmodule.c (init_psycopg): set
|
||
psycopg_debug_enabled to true if the $PSYCOPG_DEBUG environment
|
||
variable is set.
|
||
|
||
2007-12-21 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied win32 patch from Jason Erickson.
|
||
|
||
* Applied patch from Thomas Lotze to use correct version
|
||
for new Zopes.
|
||
|
||
2007-12-20 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/pqpath.c (pq_execute): uncomment the "curs->pgres ==
|
||
NULL" error handler after the PQexec() call. This is needed to
|
||
catch database disconnects (and probably other errors). According
|
||
to Federico, it was commented out to avoid a spurious error, so we
|
||
should watch for problems.
|
||
|
||
2007-12-20 James Henstridge <james@jamesh.id.au>
|
||
|
||
* psycopg/pqpath.c (pq_raise): only remove the first 8 characters
|
||
of the exception message if it actually gives the severity.
|
||
|
||
* psycopg/pqpath.h (pq_resolve_critical): add prototype, since
|
||
this function is being used from connection_int.c.
|
||
|
||
* psycopg/psycopg.h: update psyco_set_error() prototype.
|
||
|
||
* psycopg/psycopgmodule.c (psyco_errors_init): set pgerror, pgcode
|
||
and cursor class attributes to None on psycopg2.Error so that the
|
||
attributes will always be available (simplifies error handling).
|
||
(psyco_set_error): add const qualifiers to msg, pgerror and pgcode
|
||
arguments.
|
||
Don't bother setting pgerror, pgcode or cursor to None if they are
|
||
not provided -- the class defaults take care of this.
|
||
|
||
2007-11-11 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* Use escape string syntax for string escape if connected to a
|
||
server requiring it.
|
||
|
||
2007-11-09 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* Use escape string syntax for binary escape if connected to a
|
||
server requiring it.
|
||
|
||
* Put a limit on the number of notices stored in the connection.
|
||
|
||
2007-10-21 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* Fixed bug #192 (Decimal support not safe for use with multiple sub
|
||
interpreters) as proposed by Graham Dumpleton.
|
||
|
||
2007-09-08 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Added MonoDevelop project, yahi!
|
||
|
||
2007-09-06 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Fixed bug #194.
|
||
|
||
2007-09-01 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Added "name" parameter to all .cursor() calls in extras.py.
|
||
|
||
2007-05-29 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.6.
|
||
|
||
* ZPsycopgDA/DA.py: removed call to now obsolete .set_type_casts().
|
||
|
||
* Applied patch from mkz (ticket #187) to add error handling when
|
||
calling conn_commit() and conn_rollback(). Fixes #187.
|
||
|
||
* cursor.copy_expert() implementation by David Rushby (copy_expert
|
||
set 5/5.)
|
||
|
||
* SQL validation refactor patch from David Rushby (copy_expert
|
||
set 4/5.)
|
||
|
||
* Reference count leak fix from David Rushby (copy_expert set 3/5.)
|
||
|
||
* 64 bit fix patch from David Rushby (copy_expert set 2/5.)
|
||
|
||
* Applied whitespace normalization patch from David Rushby (copy_expert
|
||
set 1/5.)
|
||
|
||
2007-04-25 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/connection_type.c: added support for a new method
|
||
.get_transaction_status() that returns the backend transaction
|
||
status as libpq knows. Also added some symbolic constants to
|
||
psycopg.extensions module (TRANSACTION_STATUS_XXX).
|
||
|
||
2007-04-14 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/psycopg.h: fixed probable typo in definition of
|
||
CONV_CODE_PY_SSIZE_T: d -> i for Python < 2.5.
|
||
|
||
* Fixed some of the examples.
|
||
|
||
2007-04-13 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied slighly modified patch from daniel (#176). Made
|
||
buffer size a compile-time parameter.
|
||
|
||
* Applied patch from David Rushby: typecast_binary.c cleanup.
|
||
|
||
* Applied patch from David Rushby for int->size_t transition.
|
||
|
||
2007-04-12 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch from Jason Erickson to fix win32 build glitches.
|
||
|
||
2007-04-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.6b2.
|
||
|
||
* psycopg/cursor_type.c: added check to raise an error when
|
||
some crazy programmer tries to use different argument formats
|
||
in the same query string. Fixes #162.
|
||
|
||
* Applied patch from David Rushby to fix win32 builds.
|
||
|
||
2007-04-10 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch from David Rushby to fix mem and ref leaks in
|
||
psycopg2.connect().
|
||
|
||
* Applied super-patch from David Rushby to fix Python 2.5 and 64
|
||
bit problems (all of them, kudos!)
|
||
|
||
2007-02-22 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Added support for per-connection and per-cursor typecasters.
|
||
|
||
2007-02-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/pqpath.c: ported psycopg1 patch from #135.
|
||
|
||
* psycopg/connection_type.c: now the password is obfuscated after we try
|
||
to connect to the backend. This really fixes #147.
|
||
|
||
2007-01-20 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.6b1.
|
||
|
||
* Added encodings patch from Karsten Hilbert.
|
||
|
||
2007-01-19 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapt_list.c: added support for None. And this closes
|
||
the other half.
|
||
|
||
* psycopg/typecast_array.c: added support for detecting the NULL
|
||
special string and converting it as a real NULL if not enclosed in
|
||
quotes. This closes half of #154.
|
||
|
||
2007-01-16 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/connection_type.c: .set_client_encoding() now converts the
|
||
argument to upper case to make sure it has the same case of the entries
|
||
in the PostgreSQL -> Python encoding conversion table.
|
||
|
||
* lib/extras.py: merged DictCursor from #143 and renamed it
|
||
RealDictCursor because allows access by cursor keys _only_.
|
||
Also cleaned up a little bit the implementation of both DictCursor
|
||
and RealDictCursor by introducing DictCursorBase.
|
||
|
||
* psycopg/pqpath.cs: new checks for NULL values (meaning an
|
||
exception was raised) in all method calls (fixes #134).
|
||
|
||
* psycopg/psycopgmodule.c: applied LATIN patch from #148.
|
||
|
||
* psycopg/connection_type.c: obfuscate password after using it.
|
||
|
||
* lib/extras.py: moved SQL_IN to extensions.py; we're now officially
|
||
adapting tuples.
|
||
|
||
* psycopg/adapt_mxdatetime.c: fixed #137 by accessing the 'date' and
|
||
'time' attributes of the mx.DateTime instance: they are always in ISO
|
||
format.
|
||
|
||
* psycopg/typecast_datetime.c: fixed problem with year > 9999.
|
||
|
||
2006-10-29 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch from Jason Erickson to make psycopg build
|
||
again on win32 (closes: #132).
|
||
|
||
2006-09-30 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* ZpsycopgDA/DA.py: applied the infinity patch from 1.1 (fixes #122).
|
||
|
||
* psycopg/adapter_datetime.py: fixed conversion problem with seconds
|
||
in the (59,60) range (fixes #131).
|
||
|
||
* ZpsycopgDA/DA.py: we now split on GMT+, GMT-, + or -. This should
|
||
fix bug #129.
|
||
|
||
* psycopg/adapter_datetime.py: now TimeFromTicks and
|
||
TimestampFromTicks both accept fractionary seconds (fixes #130).
|
||
|
||
2006-09-23 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/errorcodes.py: added list of all PostgreSQL error codes
|
||
compiled by Johan Dahlin.
|
||
|
||
* psycopg/psycopg.h: applied compatibility macros from PEP 353.
|
||
|
||
* Applied patch 1/3 from Piet Delport; from his email:
|
||
|
||
psycopg2-Py_ssize_t-input.diff adjusts variables used for parameters
|
||
and return values. These changes only prevent overflowing on values
|
||
greater than 32-bits, so they're not as critical as the other two
|
||
patches. I tried to leave places unchanged where the input size is
|
||
already constrained to sizeof(int), but i might have missed a few
|
||
either way, not being too familiar with the codebase.
|
||
|
||
* Applied patch 2/3 from Piet Delport; from his email:
|
||
|
||
psycopg2-Py_ssize_t-output.diff adjusts variables used as outputs
|
||
from CPython API calls: without it the calls try to write 64 bits
|
||
to 32 bit locations, trampling over adjacent values/pointers,
|
||
and segfaulting later.
|
||
|
||
* Applied patch 1/3 from Piet Delport; from his email:
|
||
|
||
psycopg2-PyObject_HEAD.diff adds missing underscores to several
|
||
"PyObject_HEAD" declarations. As far as i can tell from gdb, the
|
||
"PyObject HEAD" versions end up accidentally meaning almost exactly
|
||
the same, but get aligned differently on AMD64, resulting in wrong
|
||
size calculation and memory corruption later.
|
||
|
||
2006-09-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Fixed syntax error in lib/extras.py (see #123)
|
||
|
||
2006-09-02 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapter_mxdatetime.c, psycopg/psycopgmodule.c: fixed last
|
||
problem with non-constant initializers.
|
||
|
||
* psycopg/connection_type.c: applied patch from Joerg Sonnenberger
|
||
to fix a double mutex destroy.
|
||
|
||
* Release 2.0.5.1.
|
||
|
||
* psycopg/cursor_type.c: applied patch from Jason Erickson to
|
||
build on MSVC and older gcc.
|
||
|
||
2006-09-01 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.5.
|
||
|
||
* Fixed patch from #119, see tracker for details.
|
||
|
||
* Preparing release 2.0.5.
|
||
|
||
* psycopg/psycopgmodule.c: fixed filling of connection errors
|
||
to include OperationalError.
|
||
|
||
* setup.py: removed pydatetime option from initialize_options
|
||
to make sure that the value in setup.cfg is used.
|
||
|
||
* psycopg/psycopgmodule.c: applied patch from jdahlin (#120)
|
||
to have .connect() accept either a string or int as the port
|
||
parameter.
|
||
|
||
* psycopg/adapter_binary.c: applied patch from jdahlin (#119)
|
||
to fix the segfault on empty binary buffers.
|
||
|
||
* psycopg/connection_type.c: added .status attribute to expose
|
||
the internal status.
|
||
|
||
* psycopg/pqpath.c: applied patch from intgr (#117) to fix
|
||
segfault on null queries.
|
||
|
||
* psycopg/cursor_type.c: applied patch from intgr (#116) to
|
||
fix bad keyword naming and segfault in .executemany().
|
||
|
||
* ZPsycopgDA/DA.py: applied ImageFile patch from Charlie
|
||
Clark.
|
||
|
||
* lib/pool.py: applied logging patch from Charlie Clark.
|
||
It will probably get a makeup and be moved to the top-level
|
||
module later.
|
||
|
||
2006-08-02 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.4.
|
||
|
||
* Fixed bug in float conversion (check for NULL string was
|
||
erroneously removed in 2.0.3!)
|
||
|
||
2006-07-31 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.3.
|
||
|
||
* psycopg/cursor_type.c: applied patch from jbellis (#113) to
|
||
allow column selection in .copy_from().
|
||
|
||
* psycopg/psycopgmodule.c: fixed memory leak in custom exceptions
|
||
(applied patch from #114).
|
||
|
||
2006-07-26 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapter_datetime.c (pydatetime_str): fixed error
|
||
in conversion of microseconds for intervals and better algo
|
||
(thanks to Mario Frasca.)
|
||
|
||
2006-06-18 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapter_binary.c: same as below.
|
||
|
||
* psycopg/adapter_qstring.c: does not segfault anymore if
|
||
.getquoted() is called without preparing the qstring with
|
||
the connection.
|
||
|
||
2006-06-15 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast_basic.c: fixed problem with bogus
|
||
conversion when importing gtk (that was crazy, I didn't
|
||
understand why it happened but the new code just fixes it.)
|
||
|
||
* ZPsycopgDA/db.py: better type analisys, using an hash
|
||
instead of a series of if (variation on patch from Charlie
|
||
Clark.)
|
||
|
||
2006-06-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.2.
|
||
|
||
* psycopg/typecast_array.c (typecast_array_cleanup): fixed a
|
||
problem with typecast_array_cleanup always returning the new
|
||
string length shorter by 1 (Closes: #93).
|
||
|
||
* psycopg/adapter_binary.c: as below.
|
||
|
||
* psycopg/adapter_qstring.c: wrapped #warning in #ifdef __GCC__
|
||
because other compilers don't have it and it will just break
|
||
compilation (patch from jason, our great win32 builder).
|
||
|
||
* psycopg/adapter_list.c: applied patch to adapt an empty list
|
||
into an empty array and not to NULL (from iGGy, closes: #108).
|
||
|
||
* psycopg/cursor_type.c: applied patch from wkv to avoid
|
||
under-allocating query space when the parameters are not of the
|
||
right type (Closes: #110).
|
||
|
||
* psycopg/connection_int.c: applied patch from wkv to avoid off
|
||
by one allocation of connection encoding string (Closes: #109).
|
||
|
||
2006-06-09 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.1.
|
||
|
||
* Fixed some buglets in ZPsycopgDA (was unable to load due
|
||
to shorter version number in psycopg module.)
|
||
|
||
2006-06-08 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0.
|
||
|
||
* ZPsycopgDA/DA.py: removed Browse table for 2.0 release; we'll
|
||
add it back later.
|
||
|
||
2006-05-26 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied better PostgreSQL patch from AA.
|
||
|
||
2006-05-24 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Enabled 8.1.4 security fix only when the version is >= 8.1.4, fall
|
||
back to old code otherwise.
|
||
|
||
* psycopg/adapter_qstring.c: now quote using PQescapeStringConn if
|
||
available.
|
||
|
||
* psycopg/adapter_binary.c: now quote using PQescapeByteaConn if
|
||
available.
|
||
|
||
2006-04-38 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.py: fixed little problem with mx_include_dir as suggested
|
||
by kvc (this closes #102).
|
||
|
||
2006-04-24 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapter_pboolean.c: added the possibility to format boolean
|
||
values as "true" and "false" instead of "'t'" and "'f'".
|
||
|
||
2006-03-08 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/extras.py: added .next() to DictCursot to support iteration.
|
||
|
||
2006-03-02 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast_array.c (typecast_array_tokenize): removed cast
|
||
to build without warnings on 64 bit arches.
|
||
|
||
2006-02-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0 beta 8.
|
||
|
||
* psycopg/config.h: applied patch from Jason to fix handle leak on
|
||
win32, as documented in #92.
|
||
|
||
2006-02-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 2.0 beta 7.
|
||
|
||
* psycopg/psycopgmodule.c: applied fix for memory overflow in
|
||
connect() (reported by solt, #91.)
|
||
|
||
* setup.py: applied patch from lbruno.
|
||
|
||
2006-01-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.py: does not report an error in pg_config unless the pg_config
|
||
was explicitly set (allows for building with old options.)
|
||
|
||
2006-01-06 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* setup.py: libpq.dll not used anymore. win32 setup uses pg_config too.
|
||
|
||
2006-01-05 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/psycopgmodule.c (psyco_set_error): added function to set extra
|
||
parameters on ProgrammingError instances. Also modified all occurances of
|
||
PyErr_SetString(ProgrammingError,...) to psycopg_set_error().
|
||
|
||
* setup.{cfg,py}: we now use pg_config to locate PostgreSQL libraries
|
||
and headers (modified patch from lbruno, see #70.)
|
||
|
||
2006-01-01 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Preparing release 2 beta 7.
|
||
|
||
* MANIFEST.in: we now distrbute pre-built documentation (still need
|
||
to add to setup.py the code necessary to build docs as part of the
|
||
build process.)
|
||
|
||
* psycopg/connection_int.c: PostgreSQL encoding names are now force
|
||
uppercase (after all PostgreSQL documentation reports them this way.)
|
||
|
||
2005-12-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast_array.c (typecast_array_cleanup): added functio
|
||
to cleanup the "[...]=" part of an array result. This probably will
|
||
need some more work for nested arrays but it fixed every test I was
|
||
able to write. (Closes: #80)
|
||
|
||
2005-12-11 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.py: half-applied patch from Tavis to specify mx_include_dir
|
||
in setup.cfg.
|
||
|
||
* psycopg/typecast.c (typecast_parse_time): cz limit in the while
|
||
loop is 6, not 5. This solve the problem with "fractionary" time zones
|
||
and fixes #78.
|
||
|
||
2005-12-06 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/extras.py: added .callproc() to DictCursor as suggested
|
||
by Philip Semanchuk.
|
||
|
||
2005-11-29 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* MANIFEST.in: added docs/async.txt. (Closes: #75)
|
||
|
||
2005-11-26 Daniele Varrazzo <daniele.varrazzo@gmail.com>
|
||
|
||
* psycopg/psycopgmodule.c: fixed exceptions refcount.
|
||
|
||
* Fixed lots of doctrings and added Epydoc-generated docs support.
|
||
|
||
2005-11-24 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* sandbox: added all the test and creash-me files to the repository.
|
||
|
||
* psycopg/typecast.c (typecast_dealloc): now directly calls
|
||
PyObject_Del to avoid to segfault.
|
||
|
||
2005-11-20 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast.c: fixed problem with microseconds conversion by
|
||
applying slightly modified patch from Ronnie Mackay.
|
||
|
||
2005-11-19 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/extensions.py: COMMITED -> COMMITTED. (Closes: #73)
|
||
|
||
* doc/extensions.rst: included Daniele's work after minor cosmetic changes
|
||
like using the new constants instead of numbers for transaction isolation
|
||
levels.
|
||
|
||
2005-11-17 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* ZPsycopgDA/pool.py: fixed connections leak by using the new name
|
||
(PersistentConnectionPool) for the old connection pool class.
|
||
|
||
2005-11-16 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Preparing release 2.0 beta 6.
|
||
|
||
* psycopg/adapter_mxdatetime.c: fixed all problems with mx conversions.
|
||
|
||
* psycopg/typecast.c: now the timezone is set correctly even if there
|
||
are no microseconds and/or the offset is 0;
|
||
|
||
* examples/encoding.py: fixed example by using python utf8 encoding for
|
||
the whole file.
|
||
|
||
* lib/__init__.py: very nice hack from Harald Armin Massa to allow
|
||
py2exe and similar tools to do their work without problems.
|
||
|
||
2005-11-15 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/psycopgmodule.c: now bails out with correct exception when one
|
||
of the needed modules can't be imported (should fix #32.)
|
||
|
||
2005-11-14 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast.c: added typecast_parse_date and typecast_parse_time
|
||
functions to do locale-safe date/time parsing. This would probably also
|
||
speed-up psycopg a little bit.
|
||
|
||
2005-11-07 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/pqpath.c: fixed problem with uninitialized value (all this was
|
||
started by replacing calloc() calls with PyMem_Malloc().)
|
||
|
||
2005-11-04 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast.c: a lot of changes:
|
||
- made typecast a new-style type
|
||
- removed coerce code and implemented the richcompare protocol that
|
||
allows to compare objects of different types
|
||
- much better __cmp__ method that allows to compare two typecast
|
||
objects and returns True if any two of the mapped oids match
|
||
- any object that can be used as an int works as right-hand operand
|
||
in __cmp__ operations
|
||
|
||
* psycopg/typecast_datetime.c: now typecast_PYINTERVAL_cast limit the
|
||
scan to 'len' characters in the string (should fix #65.)
|
||
|
||
2005-11-03 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Applied patch from Daniele Varazzo to enable Decimal on Python
|
||
2.3 when the module is available (run-time check, nice.)
|
||
|
||
2005-10-26 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.cfg: added include_dirs line for SUSE 9.3.
|
||
|
||
2005-10-22 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/cursor_type.c: added support for named cursors:
|
||
- .fetchXXX() methods now execute a FETCH if the cursor is named
|
||
- .execute() executes a DECLARE if the cursor is named
|
||
- .execute() fails if a named cursor is used in autocommit
|
||
- .executemany() can't be called on named cursors
|
||
- .scroll() executes a MOVE if the cursor is named
|
||
- .close() executes a CLOSE if the cursor is named
|
||
Also, a "transaction mark" was added to both the connection and the
|
||
cursor and an exception is raised when using a named cursor unless the
|
||
two marks correspond.
|
||
|
||
* psycopg/connection_int.c: snprintf->PyOS_snprintf.
|
||
|
||
* psycopg/psycopgmodule.c: snprintf->PyOS_snprintf.
|
||
|
||
* psycopg/cursor_type.c: changed self->query type from C string to
|
||
PyObject* to better manage queries in named cursors.
|
||
|
||
* psycopg/psycopgmodule.c: cleaned up exception names (now the errors
|
||
is printed as psycopg2.Error and not as the confusing
|
||
psycopg2._psycopg.Error.)
|
||
|
||
2005-10-20 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/pool.py: renamed ThreadedConnectionPool to PersistentConnectionPool
|
||
and added a connection pool that allows multiple connections per thread
|
||
as ThreadedConnectionPool (courtesy of Daniele Varrazzo.)
|
||
|
||
2005-10-19 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Releasing 2.0 beta 5.
|
||
|
||
* psycopg/adapter_mxdatetime.c: reverted to old strftime method to format
|
||
mx.DateTime objects; the new method didn't worked in some corner-cases.
|
||
This makes impossible to have more than 2 decimal places for seconds but
|
||
at least we get the time right every time.
|
||
|
||
2005-10-18 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* NOTIFY is back end working.
|
||
|
||
* psycopg/connection_type.c: fixed problem with initialization of
|
||
notifies list (also fixed small memory leak in connection dealloc.)
|
||
|
||
* examples/notify.py: added NOTIFY example.
|
||
|
||
* psycopg/cursor_type.c: added per-cursor type-casters dictionaries.
|
||
|
||
2005-10-18 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast.c: temporary fix to typecasting objects to return
|
||
False for any comparaison except an integer in self.values (i.e., we
|
||
don't raise an exception anymore on a coerce error.) Epydoc is now
|
||
happy.
|
||
|
||
* psycopg/config.h: ZETA config.h patch from Charlie Clark.
|
||
|
||
* examples/threads.py: fixed small typo: psycopg -> psycopg2.
|
||
|
||
* Big cleanup of unsigned chars to tame gcc 4.
|
||
|
||
* Big cleanup of module names (i.e., psycopg2._psycopg everywhere.)
|
||
|
||
* psycopg/config.h: added fake localtime_r for platforms missing it
|
||
|
||
* psycopg/cursor_type.c: cursors now have a FixedOffsetTimezone
|
||
tzinfo_factory by default.
|
||
|
||
* psycopg/adapter_datetime.c: added tzinfo argument to psycopg2.Time and
|
||
psycopg2.Timestamp. Also now TimestampFromTicks sets the tzinfo object
|
||
to psycopg2.tz.LOCAL.
|
||
|
||
2005-10-17 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/adapter_datetime.c: we now use localtime() instead of gmtime()
|
||
to accound for the local time-zone in timestamps.
|
||
|
||
* psycopg/connection_type.c: fixed docstring for .cursor().
|
||
|
||
* psycopg/psycopgmodule.c: added useful docstring for .connect().
|
||
|
||
2005-10-08 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/connection_type.c: isolation level upper bound set to 2.
|
||
|
||
* lib/psycopg1.py: explicitly set isolation level to 2 on .connect()
|
||
to mimic psycopg 1 behaviour.
|
||
|
||
* psycopg/connection_int.c: now set isolation level from
|
||
default_transaction_isolation backend environment value.
|
||
|
||
* psycopg/pqpath.c: removed serialization level 3: now everybody
|
||
(except me) has to use the mnemonics defined in psycopg2.extensions.
|
||
|
||
* lib/extensions.py: Added mnemonics for serialization levels.
|
||
|
||
2005-10-02 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_callproc): applied callproc
|
||
patch from Matt Goodall (added a check on _psyco_curs_execute
|
||
return value and substituted malloc/free with PyMem versions.)
|
||
|
||
2005-10-01 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/connection_int.c: fixed segfault by moving PyErr_Format
|
||
after GIL acquisition (closes: #50).
|
||
|
||
* psycopg/connection_type.c: applied patch from Matt Goodall to
|
||
fix some doc strings.
|
||
|
||
2005-09-23 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* lib/pool.py: applied patch from piro to avoid the scan of the
|
||
whole connection array on getconn().
|
||
|
||
2005-09-12 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* lib/pool.py: Applied psycopg->psycopg2 patch to from bug #35.
|
||
|
||
* ZpsycopgDA/db.py: fixed problem with OperationalError that
|
||
resulted in cryptic message to Zope users ("'OperationalError' is
|
||
not defined".)
|
||
|
||
2005-08-23 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* setup.py: applied patch from Daniele Varrazzo to avoid segfaults
|
||
when compiling with migw for Python 2.4.x.
|
||
|
||
* psycopg/adapter_mxdatetime.c (mxdatetime_str): ported code from 1.1.x
|
||
to convert mxDateTime object preserving the precision of fractional
|
||
seconds.
|
||
|
||
2005-08-22 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* ZPsycopgDA/*.py: psycopg -> psycopg2.
|
||
|
||
* setup.py: modified to install the module components under
|
||
psycopg2 on windows too (thanks to Daniele Varrazzo.)
|
||
|
||
2005-08-07 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/config.h: added __sun__ to the symbols checked for round()
|
||
|
||
2005-07-21 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/adapter_datetime.c (psyco_XXXFromTicks): fixed the 1900
|
||
years offset reported by Jeroen van Dongen (see ticket #33).
|
||
|
||
2005-07-17 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 2.0 beta 4.
|
||
|
||
* lib/extras.py (DictConnection.cursor): added DictConnection to
|
||
make easier to retrieve data in DictRows.
|
||
|
||
2005-06-24 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/typecast_datetime.c (typecast_PYINTERVAL_cast): applied patch
|
||
from Geert Jansen to fix interval bug due to overflow.
|
||
|
||
2005-06-18 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.cfg: some clarifications and include_dirs example for Mandrake.
|
||
|
||
* ZPsycopgDA/DA.py: DTMLFile -> HTMLFile everywhere to fix zope
|
||
cut&paste problems.
|
||
|
||
* MANIFEST.in: added missing files to do bdist_rpm.
|
||
|
||
* lib/psycopg1.py: fixed .dictfetchrow() to return None if fetchone()
|
||
returns None instead of raising an exception.
|
||
|
||
* ZPsycopgDA/icons: replaced corrupted icons with good ones.
|
||
|
||
2005-06-13 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/psycopgmodule.c (psyco_connect): changed the port keyword
|
||
parameter type to int (instead of string); this should fix #23.
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_execute): now checks for
|
||
empty queries and raise a ProgrammingError if appropriate (closes:
|
||
#24).
|
||
|
||
* setup.py: psycopg module renamed to psycopg2.
|
||
|
||
2005-06-02 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_execute): fixed segfault when
|
||
not passing string or unicode to .execute().
|
||
|
||
2005-06-01 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* examples/fetch.py: added example about using DECLARE CURSOR.
|
||
|
||
* psycopg/adapter_datetime.c (psyco_TimestampFromTicks): "Hmmm,
|
||
looks like someone forgot that C expects months to start counting
|
||
from 0, but the Python date routines start counting from 1." That
|
||
was me: fixed.
|
||
|
||
2005-05-31 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_execute): if a
|
||
UnicodeEncodeError is raised during the converion of a unicode
|
||
query we let it propagate insead of segfaulting.
|
||
|
||
2005-5-27 Federico Di Gregorio, <fog@lana.initd.org>
|
||
|
||
* tests/types_basic.py: fixed float and binary tests.
|
||
|
||
2005-05-26 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 2.0b3.
|
||
|
||
* ZPsycopgDA/db.py (DB.convert_description): isolated description
|
||
conversion (and fixed the conversion as per #18).
|
||
|
||
* ZPsycopgDA/DA.py: fixed again; this time Zope should work for
|
||
real. :/ Also fixed the type-casters (psycopg 2 added the extra
|
||
cursor parameter) as reported in #18.
|
||
|
||
* psycopg/psycopgmodule.c (init_psycopg): fixed Python 2.2 build.
|
||
|
||
2005-05-19 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 2.0b2.
|
||
|
||
* lib/extras.py (DictRow): Some extra methods for DictRow.
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_execute): added explict check
|
||
to avoid using None as bound variables (very importand for cursor
|
||
subclasses calling cursor.execute(self, query, None).
|
||
|
||
2005-05-18 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* ZPsycopgDA/DA.py (ALLOWED_PSYCOPG_VERSIONS): updated to work
|
||
with 2.0b2 only (will support only the exact version untill final
|
||
2.0 release.)
|
||
|
||
* setup.py: Applied combined patch from Daniele Varrazzo and Jason
|
||
Erickson to build on win32 using MSVC or mingw.
|
||
|
||
2005-05-15 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/microprotocols.c (microprotocols_adapt): fixed memory
|
||
leak on None as suggested by gh (closes: #16).
|
||
|
||
2005-05-10 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* lib/extras.py (DictRow): we now save a reference to the index
|
||
itself and not to the cursor to avoid problems while accessing
|
||
DictRow objects after reusing the cursor for a different query
|
||
(using Kevin Jacobs db_row would be much better but DictRow is
|
||
just an example, right?)
|
||
|
||
2005-05-09 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 2.0 beta 1.
|
||
|
||
* psycopg/typecast_datetime.c (typecast_PYDATETIME_cast): fixed a
|
||
typo (pyDateTimeModuleP->pyDateTimeTypeP) that was causing errors
|
||
with infinite datetime values.
|
||
|
||
* psycopg/adapter_binary.c (binary_str): Py_XINCREF on the buffer
|
||
that can be NULL on error.
|
||
|
||
* psycopg/typecast_binary.*: applied slightly modified
|
||
chunk/buffer object patch to allow round-trip of buffer objects
|
||
(BYTEA columns.)
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_executemany): applied slightly
|
||
fixed patch from wrobell to allow iterators in .executemany().
|
||
|
||
2005-04-18 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* MANIFEST.in: included debian directory.
|
||
|
||
2005-04-10 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/adapter_list.*: added list adapter.
|
||
|
||
* psycopg/microprotocols.c (microprotocol_getquoted): moved
|
||
_mogrify_getquoted into utility function in the microprotocols
|
||
library.
|
||
|
||
* setup.py: Added extensive error message on missing datetime
|
||
headers.
|
||
|
||
* Applied mingw patch from Daniele Varazzo.
|
||
|
||
2005-04-03 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* lib/psycopg1.py (connection.autocommit): added compatibility
|
||
.autocommit() method.
|
||
|
||
* psycopg/psycopgmodule.c (psyco_connect): factory ->
|
||
connection_factory.
|
||
|
||
* lib/psycopg1.py: added psycopg 1.1.x compatibility module.
|
||
|
||
2005-03-29 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Applied patch to fix tuple count.
|
||
|
||
* psycopg/pqpath.c (pq_is_busy): Staring from bug report from
|
||
Jason Erickson fixed segfaults due to calling Python function
|
||
without holding the GIL.
|
||
|
||
2005-03-24 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/adapter_binary.c (binary_escape): propagated Andrea's
|
||
fix to binary adapter.
|
||
|
||
* psycopg/adapter_qstring.c (qstring_quote): applied patch from
|
||
Andrea Arcangeli to fix allocation failures (>4Gb) on 64 bit
|
||
arches.
|
||
|
||
* psycopg/typecast_array.c (typecast_array_tokenize): much better
|
||
tokenization code.
|
||
|
||
2005-03-23 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_basic.c: all the basic casters now respect the
|
||
passed string length.
|
||
|
||
* psycopg/typecast.c (typecast_cast): set curs->caster to self
|
||
during the type-casting.
|
||
|
||
* psycopg/cursor_type.c: added "typecaster" attribute to the
|
||
cursor (this is safe, cursors can't be shared among threads and
|
||
the attribute is RO.)
|
||
|
||
2005-03-22 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_array.c: added some more structure to implement
|
||
array typecasting.
|
||
|
||
* scripts/buildtypes.py: new version to include array data.
|
||
|
||
2005-03-15 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* lib/extensions.py: Added AsIs import.
|
||
|
||
2005-03-12 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor.h: removed "qattr", not used anymore and added
|
||
"cast", holding the typecaster currently in use.
|
||
|
||
* Release 1.99.13.
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_executemany): implemented as a
|
||
wrapper to extract python arguments and then call
|
||
_psyco_curs_execute().
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_execute): splitted away
|
||
python argument parsing from the real execute code, to later allow
|
||
for .executemany().
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_buildrow_fill): modified to
|
||
call typecast_cast().
|
||
|
||
* psycopg/typecast.c (typecast_call/typecast_cast): modified
|
||
typecast_call to use the new typecast_cast that avoids one string
|
||
conversion on every cast.
|
||
|
||
2005-03-04 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* Release 1.99.12.1.
|
||
|
||
* psycopg/adapter_asis.c (asis_str): changed call to PyObject_Repr
|
||
to PyObject_Str to avoid problems with long integers.
|
||
|
||
2005-03-03 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast.h: added array casting functions.
|
||
|
||
* scripts/maketypes.sh: does not generate pgversion.h anymore.
|
||
|
||
* Updated all examples for the release.
|
||
|
||
2005-03-02 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.12.
|
||
|
||
* psycopg/adapter_*.c: added __conform__ to all adapters.
|
||
|
||
* psycopg/adapter_qstring.c (qstring_quote): we now use
|
||
PyString_AsStringAndSize() instead of strlen() that would stop at
|
||
the first embedded \0 (but note that libpq quoting function will
|
||
truncate the string anyway!)
|
||
|
||
* COPY TO implemented using both old and new (v3) protocol.
|
||
|
||
* psycopg/pqpath.c (_pq_copy_out_v3): implemented and working.
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_copy_to): added cursor object
|
||
interface for copy_to.
|
||
|
||
* COPY FROM implemented using both old and new (v3) protocol.
|
||
|
||
* psycopg/config.h (Dprintf): declaration for asprintf is gone.
|
||
|
||
* psycopg/pqpath.c (_pq_copy_in_v3): implemented.
|
||
|
||
2005-03-01 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* setup.py: now we generate a slighly more verbose version string
|
||
that embeds some of the compile options, to facilitate users' bug
|
||
reports.
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_copy_from): we now use
|
||
PyOS_snprintf instead of asprintf. On some platforms this can be
|
||
bad (win32).. if that's your case, get a better platform. :/
|
||
|
||
* psycopg/microprotocols.c (microprotocols_adapt): fixed small
|
||
typo that made adaptation using __conform__ impossible.
|
||
|
||
2005-02-28 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* lib/extras.py: removed AsIs adapter (now a built-in); also
|
||
removed prepare() method from the adapters that don't use it to
|
||
avoid an extra method call at mogrification time.
|
||
|
||
* psycopg/psycopgmodule.c (psyco_adapters_init): added
|
||
initialization of the AsIs adapter (adapts int, long, float and
|
||
*wonder* None!)
|
||
|
||
* psycopg/cursor_type.c (_mogrify_getquoted): reorganized the code
|
||
to adapt and then call .getquoted() to obtain the quoted data into
|
||
this new function.
|
||
|
||
2005-2-27 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* examples/myfirstrecipe.py: fixed adapter registration.
|
||
|
||
2005-2-7 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* setup.py: added patch by Valentino Volonghi to build on MacOS X.
|
||
|
||
2005-01-29 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/pqpath.c (_pq_fetch_tuples): fixed scale-related
|
||
segfault (*fourth* mail from Andrea. Another couple like this and
|
||
psycopg 2 will exit alpha at warp speed.)
|
||
|
||
* psycopg/pqpath.c (pq_fetch): _pq_copy_out_3 -> _pq_copy_out_v3
|
||
(second and third mail from Andrea. :/)
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_has_write_check): added check
|
||
on .write() attribute, fixed compilation problems (first mail from
|
||
Andrea Arcangeli.)
|
||
|
||
2005-01-20 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* lib/extensions.py (register_adapter): added register_adapter
|
||
function, exported ISQLQuote in psycopg.extensions.
|
||
|
||
2005-01-18 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/pqpath.c (_pq_fetch_tuples): ported scale/precision fix
|
||
from psycopg 1.1.
|
||
|
||
* LICENSE: detailed licensing information. Re-licensed some parts
|
||
under BSD-like to allow integration is pysqlite.
|
||
|
||
2005-01-13 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* ZPsycopgDA/db.py (DB.query
|
||
): ported ZPsycopgDA connection fix
|
||
from psycopg 1.1.
|
||
|
||
* lib/*.py: added pydoc-friendly messages.
|
||
|
||
2005-01-12 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Added debian directory (thanks to W. Borgert who sent initial
|
||
patch based on cdbs.)
|
||
|
||
2004-12-20 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/pqpath.c (pq_execute): removed multiple calls to
|
||
pq_fetch in syncronous DBAPI compatibility mode to solve rowcount
|
||
problem.
|
||
|
||
2004-12-14 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Mm.. release 1.99.11.
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_prefetch): fixed bug in
|
||
interaction between the .isready() method and
|
||
_psyco_curs_prefetch: isready now store away the pgres but leave
|
||
prefetch do its work.
|
||
|
||
* psycopg/*.c: changed the names of most of the psycopg's built-in
|
||
types to replect their position in the psycopg._psycopg module.
|
||
|
||
2004-12-10 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c: now *all* write or async accesses to the
|
||
connection object are arbitrated using the connection lock.
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_isready): now we reset the
|
||
current async cursor if it is ready, to allow other cursors to
|
||
.execute() without raising the "transaction in progress" error.
|
||
|
||
* psycopg/pqpath.c (pq_is_busy): gained status of high-level
|
||
function with its own blocking and locking.
|
||
|
||
* psycopg/cursor.h (EXC_IF_CURS_CLOSED): also checks the
|
||
connection (a closed connection implies a closed cursor.)
|
||
|
||
* psycopg/cursor_type.c: cursor's connection is correctly
|
||
INCREFfed and DECREFfed.
|
||
|
||
* psycopg/connection_type.c: removed the cursors list from the
|
||
connection object. It is not necessary anymore for the connection
|
||
to know about the cursors and the reference counting will keep the
|
||
connection alive (but possibly closed) until all cursors are
|
||
garbage collected.
|
||
|
||
2004-11-20 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/cursor_type.c (_mogrify): ported %% fix from 1.1.15.
|
||
|
||
2004-11-20 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_execute): added check to raise an
|
||
exception if a cursor tries to .execute() while an async query is
|
||
already in execution froma different cursor.
|
||
|
||
2004-11-20 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/connection_type.c (psyco_conn_cursor): renamed 'cursor'
|
||
argument to 'cursor_factory'.
|
||
|
||
2004-11-19 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_buildrow_fill): now standard
|
||
tuples are filled using PyTuple_SET_ITEM while extended types
|
||
(created via row_factory) are filled using PySequence_SetItem.
|
||
|
||
* psycopg/cursor_type.c: changed cursor attribute name from
|
||
tuple_factory to row_factory.
|
||
|
||
2004-10-14 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_buildrow_fill): now we use
|
||
PySequence_SetItem to avoid problems with containers created from
|
||
cursor's .tuple_factory attribute.
|
||
|
||
* lib/extras.py (DictCursor.execute): fixed stupid bug with cursor
|
||
setting self.tuplefactory instead of self.tuple_factory.
|
||
|
||
2004-10-02 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.10.
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_buildrow_*): unified normal
|
||
and factory code into the _psyco_curs_buildrow_fill function; no
|
||
more memory leaks here.
|
||
|
||
* psycopg/config.h (round): added check for __FreeBSD__ (that
|
||
should be defined when compiling with gcc, I hope.)
|
||
|
||
* setup.py: removed a lot of code now in setup.cfg.
|
||
|
||
2004-09-24 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (cursor_dealloc): fixed small memory leak
|
||
due to missing disposal of self->pgres.
|
||
|
||
2004-9-14 Federico Di Gregorio <fog@initd.org>
|
||
|
||
* examples/dialtone.py: Added adapt() example by Valentino
|
||
Volonghi.
|
||
|
||
2004-09-14 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/microprotocols.c (microprotocols_adapt): lots of changes
|
||
to the microprotocols layer (it is not micro anymore);
|
||
implementing almost all the PEP 246. The adapter registry is now
|
||
indexed by (type, protocol) and not by type alone.
|
||
|
||
2004-09-13 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (_mogrify): and qattr is gone.
|
||
|
||
2004-09-05 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.9 (or, the "twisting by the pool" release).
|
||
|
||
* psycopg/pqpath.c (_pq_fetch_tuples): changed to "static void"
|
||
instead of "static int", no ways for this function to fail.
|
||
|
||
2004-09-04 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/pqpath.c (_pq_fetch_tuples): ported rowcount fix from
|
||
1.1.15.
|
||
|
||
* ZPsycopgDA/*: ZPsycopgDA back in action, using the new pooling
|
||
code.
|
||
|
||
2004-08-29 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_basic.c (typecast_DECIMAL_cast): added DECIMAL
|
||
typecaster; it even works :).
|
||
|
||
* scripts/buildtypes.py (basic_types): added DECIMAL typecaster
|
||
for the NUMERIC oid.
|
||
|
||
* examples/threads.py: updated threads example to use pooling code.
|
||
|
||
* lib/pool.py: added very simple and thread-safe connection
|
||
pooling class.
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_fetchmany): fixed problem with
|
||
.fetchall() and .fetchmany() returning None instead of [] on empty
|
||
result sets.
|
||
|
||
* Release 1.99.8.
|
||
|
||
2004-08-28 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_execute): added processing of
|
||
unicode queries.
|
||
|
||
* examples/encoding.py: much better encoding example, also using
|
||
the new UNICODE typecaster.
|
||
|
||
* psycopg/typecast_basic.c (typecast_UNICODE_cast): added UNICODE
|
||
typecaster.
|
||
|
||
* lib/extensions.py: the encodings dictionary is not available by
|
||
default but can be accessed from the psycopg.extensions module.
|
||
|
||
* psycopg/adapter_qstring.h: remove encoding information from
|
||
qstring adapter and moved it into psycopg module.
|
||
|
||
2004-08-26 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_prefetch): added check for
|
||
asynchronous fetch by wrong cursor.
|
||
|
||
* psycopg/pqpath.c (pq_fetch): fixed backend status message (bug
|
||
reported by Daniele Varrazzo.)
|
||
|
||
2004-07-29 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_basic.c (typecast_BINARY_cast): reverted to
|
||
using strings instead of buffers when converting postgresql binary
|
||
objects (should *temporarily* fix corruption bug reported on
|
||
win32.)
|
||
|
||
2004-07-21 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c: removed __iter__ and next methods from
|
||
object methods and moved them where they do belong (tp_iter and
|
||
tp_iternext.) Bug reported by Daniele Varrazzo (again!)
|
||
|
||
2004-07-19 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_datetime.c (typecast_PYINTERVAL_cast): replaced
|
||
round() with micro() when rounding seconds (fixes bugs reported by
|
||
Daniele Varrazzo.)
|
||
|
||
2004-07-16 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/pqpath.c (pq_set_critical): allow for a custom message
|
||
insted of the one from PQerrorMessage.
|
||
(pq_resolve_critical): added argument to specify if connection is
|
||
to be closed (used to not close it during COPY FROM/TO criticals.)
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_fileno, psyco_curs_isready):
|
||
added extension methods related to async queries.
|
||
|
||
2004-07-15 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.7.
|
||
|
||
* examples/tz.py: added example about time zones.
|
||
|
||
* psycopg/typecast_datetime.c (typecast_PYDATETIME_cast): create
|
||
FixedOffsetTimezone for postgresql "timestamp with time zone"
|
||
types.
|
||
|
||
* lib/tz.py: added (even more than) needed tzinfo classes.
|
||
|
||
* psycopg/typecast.c (typecast_call): changed typecast call code
|
||
to take the additional cursor parameter, needed for
|
||
cursor-dependent type casting (tzinfo & friends.)
|
||
|
||
* psycopg/cursor_type.c (_psyco_curs_buildrow_with_factory): added
|
||
use of tuple factories to fetcXXX methods.
|
||
|
||
* lib/extras.py: little extra goodies for psycopg.
|
||
|
||
2004-07-14 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.6.
|
||
|
||
* psycopg/connection_type.c: added .dsn attribute to connection
|
||
objects.
|
||
|
||
* psycopg/cursor_type.c (psyco_curs_mogrify): added .mogrify()
|
||
method.
|
||
|
||
* psycopg/adapter_qstring.c: copy the connection encoding only if
|
||
wrapped object is unicode and added table of encodings.
|
||
|
||
2004-07-13 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/cursor_type.c (_mogrify): moved Dprintf statement to
|
||
avoid dereferencing empty pointer (from 1.1.x)
|
||
(psyco_curs_execute): now we save the query in self->query instead
|
||
of freeing the memory ASAP.
|
||
(cursorObject_members): and we finally export the saved query
|
||
through the cursor members interface. that's all folks.
|
||
|
||
* lib/extensions.py: added extensions module to clearly separate
|
||
psycopg own extensions from DBAPI-2.0
|
||
|
||
2004-07-10 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_datetime.c: ported interval fix from 1.1.x.
|
||
|
||
2004-05-16 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_datetime.c (typecast_*_cast): fixed Value error
|
||
when seconds > 59 by setting minutes += 1 and seconds -= 60
|
||
(reported by Marcel Gsteiger.)
|
||
|
||
2004-04-24 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* ported time interval patch by Ross Cohen from 1.1.12.
|
||
|
||
2004-04-19 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_datetime.c (typecast_PYDATE_cast): applied
|
||
patch from Jason Erickson: min and max taken from datetime.Date
|
||
type.
|
||
|
||
2004-04-18 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Applied changes from Jason Erickson to build on win32; see his
|
||
(slightly edited) entry below. (Still builds on Linux :)
|
||
|
||
* psycopg/*.c: removed inclusion of pthread.h from all files
|
||
except psycopg/config.h to build on win32 without faking the file.
|
||
|
||
2004-04-15 Jason Erickson <jerickso@stickpeople.com>
|
||
|
||
* setup.py: Various changes. The critical ones:
|
||
- Make an empty pthread.h file so all the code doing an
|
||
#include <pthread.h> will find something.
|
||
- Appended the winsock2 library and the PostgreSQL library to
|
||
the library path.
|
||
- Setup the include path.
|
||
- Have the PSYCOPG_VERSION macro be included with quotes.
|
||
|
||
* config.h: Added/Cleaned up Win32 includes, defines, stub functions.
|
||
|
||
* typecast.h: Removed ';' after PyObject_HEAD in the
|
||
typecastObject structure since Microsoft Visual Studio does not
|
||
like it.
|
||
|
||
2004-04-15 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.5 (bug-fixing and reorganization)
|
||
|
||
* setup.py et al.: moved psycopg to psycopg._psycopg to make
|
||
easier to provide high level python-only utilities (like the
|
||
promised pooling code). psycopg/__init__.py imports _psycopg and
|
||
make all the default DBAPI-2.0 stuff available.
|
||
|
||
2004-04-14 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/psycopgmodule.c (initpsycopg): wrapped initialization of
|
||
date/time adapters in #ifdefs to have psycopg compile without mx
|
||
or builtin datetime.
|
||
|
||
2004-04-10 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.4.
|
||
|
||
2004-04-09 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/typecast_builtins.c: changed DATE to not include
|
||
DATETIME types anymore.
|
||
|
||
* psycopg/adapter_datetime.c (pydatetime_str): switched from
|
||
strftime to isoformat to preserve fractional seconds.
|
||
|
||
2004-04-08 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/psycopgmodule.c (psyco_connect): ported sslmode
|
||
parameter from 1.1 branch.
|
||
|
||
* psycopg/adapter_datetime.*: added python built-in datetime
|
||
adapters. also added the datetime typecasters (still using mx as
|
||
default).
|
||
|
||
* psycopg/typecast.h: removed aliases, they now live in the right
|
||
typecast_xxx.c file.
|
||
|
||
2004-03-08 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.3 (alpha 4).
|
||
|
||
* examples/lastrowid.py: and the .lastrowid example is in.
|
||
|
||
* psycopg/cursor_type.c (_mogrify): added call to .prepare()
|
||
method in both dict and sequence path.
|
||
|
||
* psycopg/connection_int.c (conn_set_client_encoding): added
|
||
encoding-change code.
|
||
|
||
* psycopg/adapter_qstring.c (qstring_quote): added hard-coded
|
||
support for utf8 and latin1 encodings.
|
||
|
||
2004-03-01 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/connection_int.c (conn_close): does not use libpq
|
||
functions on NULL pgconn (this can happen when conn_close is
|
||
called after a failed PQconnect.)
|
||
|
||
2004-02-29 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* Release 1.99.2 (alpha 3).
|
||
|
||
* psycopg/cursor_type.c: added .rownumber and .connection
|
||
attributes. Also added .scroll(), .next() and .__iter__() methods
|
||
(see DBAPI2-.0 extensions on PEP.)
|
||
|
||
* psycopg/connection_type.c (psyco_conn_set_isolation_level):
|
||
added connection method .set_isolation_level(). Also added all
|
||
error objects to the connection (see DBAPI2-.0 extensions on PEP.)
|
||
|
||
* psycopg/connection_int.c (conn_switch_isolation_level): added
|
||
isolation level switching code.
|
||
|
||
* setup.py: removed all references to PSYCOPG_NEWSTYLE: support
|
||
for python < 2.2 has been dropped.
|
||
|
||
* typecast_basic.c (typecast_BINARY_cast): now binary objects are
|
||
returned as true buffers.
|
||
|
||
* adapter_binary.*: added adapter for buffers and binary (bytea)
|
||
objects.
|
||
|
||
* Release 1.99.1 (alpha 2).
|
||
|
||
* adapter_mxdatetime.*: added adapters for all mx.DateTime types.
|
||
|
||
2004-02-28 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* cursor_type.c (_mogrify): complete rework of the mogrification
|
||
code to use the microprotocols_adapt function.
|
||
|
||
* typecast_basic.c (typecast_BOOLEAN_cast): we now return real
|
||
Py_True and Py_False values.
|
||
|
||
* microprotocols.h: added very simple microprotocols
|
||
implementation to allow for python->postgresql types registry.
|
||
|
||
2004-01-05 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* connection_int.c (conn_commit/conn_rollback): added code to
|
||
commit/rollback and connection methods.
|
||
|
||
2004-01-04 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* cursor_type.c (psyco_curs_fetchone): added fetchone method.
|
||
|
||
2004-01-03 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* added (empty) INSTALL file.
|
||
|
||
* cursor_type.c (cursor_dealloc): added qattr for custom object
|
||
quoting using a callable attribute.
|
||
(_mogrify): ported new, fixed mogrification code from 1.1.12.
|
||
|
||
2003-08-01 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* cursor_type.c (_mogrify_sequence): added sequence mogrification,
|
||
can be done better, on the dict model.
|
||
|
||
2003-07-28 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* typeobj_qstring.c: added quoted strings (can use both own code,
|
||
like psycopg 1.x or PQescapeString from lipq.)
|
||
|
||
2003-07-21 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* connection_type.c (psyco_conn_close): added .close()
|
||
method. wow.
|
||
|
||
* cursor_*.c: added basic cursor interface (new-style.)
|
||
|
||
2003-07-20 Federico Di Gregorio <fog@debian.org>
|
||
|
||
* psycopg/*: beginning of new source layout. if you think this
|
||
changelog is somewhat empty, you're right. look at
|
||
doc/ChangeLog-1.x for psycopg 1.x changelog just before the
|
||
branch.
|
||
|
||
|