From dcbbaa76d658327dbb8f90e3468e1f6ef0b0b5d0 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Sun, 2 Dec 2012 15:57:16 +0000 Subject: [PATCH] Dropped unmaintained changelog Welcome to the worderful world of SCM. --- ChangeLog | 2455 ----------------------------------------------------- 1 file changed, 2455 deletions(-) delete mode 100644 ChangeLog diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 57b803b6..00000000 --- a/ChangeLog +++ /dev/null @@ -1,2455 +0,0 @@ -2010-12-18 Daniele Varrazzo - - * connection.h: added codec attribute to avoid repeated codec name - lookups during unicode query/params manipulations. - - * setup.py: bumped to version 2.3.2.dev0 - - * psycopg/connection_int.c: applied patch from Marti Raudsepp to close - ticket #24. Fixed segfault in connection when DateStyle not available - (e.g. pgbouncer appars not passing it to the client) - -2010-12-15 Daniele Varrazzo - - * psycopg/utils.c: Added psycopg_strdup function. - -2010-12-14 Daniele Varrazzo - - * psycopg/connection_type.c: No need to put connection fields to zero. - - * lib/extensions.py: Improved mapping from PG to Py encodings. - - * psycopg/psycopgmodule.c: Added a few missing encodings: EUC_CN, - EUC_JIS_2004, ISO885910, ISO885916, LATIN10, SHIFT_JIS_2004. - -2010-12-04 Daniele Varrazzo - - * setup.py: bumped to version 2.3.1.dev0 - - * datetime modules reorganized to work around CentOS 5.5 x86_64 buld - problem. Closes ticket #23 - - * psycopg/typecast.h: dropped private functions interfaces. - -2010-12-01 Daniele Varrazzo - - * lib/extras.py: DictRow items can be updated. Patch by Alex Aster. - -2010-11-28 Daniele Varrazzo - - * Cancel patch from Jan integrated. - - * psycopg/connection_type.c: can't cancel a prepared connection - -2010-11-22 Daniele Varrazzo - - * psycopg/connection_int.c: dropped notices hack to get COPY errors from - V2 protocol. - -2010-11-18 Daniele Varrazzo - - * psycopg/connection.h: Added enum with possilbe isolation level states. - Also, general isolation levels cleanup and tests added. - - * psycopg/utils.c: compiler warning dropped. - - * typecast.h: functions exported to drop warnings. - - * datetime module initialized at is supposed to be. - - * mx.DateTime module initialized at is supposed to be. - -2010-11-17 Daniele Varrazzo - - * psycopg/connection_type.c: don't clobber exception if - isolation_level_switch fails. - -2010-11-16 Daniele Varrazzo - - * psycopg/connection_int.c: abort connection to protocol 2 server. - - * psycopg/pqpath.c - * psycopg/connection_int.c: dropped support for protocol 2 at compile - time and protocol 2-specific code. - - * psycopg/connection_int.c: don't run a query at every connection to detect - client encoding: use PQparameterStatus() instead. - - * psycopg/connection_int.c: don't run a query at every connection to set - the datestyle to ISO if PQparameterStatus() reports it already is. - -2010-11-11 Daniele Varrazzo - - * lib/extras.py: build the namedtuple only once per execution, not once - per fetch. - - * lib/extras.py: don't change the exception raised when fetching without a - result from NamedTupleCursor. - - * psycopg/connection_int.c: fixed notices order (ticket #9). - -2010-11-10 Daniele Varrazzo - - * psycopg/green.c: functions unused outside the module marked static. - -2010-11-09 Daniele Varrazzo - - * Replaced PyObject_CallFunction() with *ObjArgs() where more efficient. - - * Dropped PyArg_ParseTuple() calls in functions taking no arguments. - - * psycopg/microprotocols.c: small optimizations. - - * Avoid pointless string manipulation in NamedTupleCursor (ticket #10) - - * psycopg/microprotocols.c: Check the presence of a mro. - -2010-11-08 Daniele Varrazzo - - * psycopg/microprotocols.c: use faster function to build tuples. - - * psycopg/microprotocols.c: fixed refcount bug. - - * psycopg/microprotocols.c: use the adapter of an object superclass if - available. - - * psycopg/adapter_pdecimal.c: fixed crash in pdecimal_str with Python - 2.5.x releases in which is_finite() is not available. - -2010-11-06 Daniele Varrazzo - - * lib/extras.py: added NamedTupleCursor. - -2010-11-05 Daniele Varrazzo - - * setup.py: bumped to version 2.3.dev0 - - * merged dev branches for 2 phase commit, notify payload, hstore adapter - -2010-10-22 Daniele Varrazzo - - * MANIFEST.in: Dropped reference to removed TODO file: it breaks 'pip'. - -2010-10-08 Daniele Varrazzo - - * psycopg/typecast_binary.c: use PQfreemem to free memory allocated by - the libpq. Bug reported by Anton Kovalev. - - * dropped PSYCOPG_OWN_QUOTING. - - * psycopg/connection_int.c: Fixed access to freed memory in - conn_get_isolation_level(). Bug reported by Anton Kovalev. - -2010-10-06 Daniele Varrazzo - - * Merged James Henstridge work on two-phase commit support. - - 2008-07-24 James Henstridge - - * tests/test_psycopg2_dbapi20.py (Psycopg2TPCTests): hook up two - phase commit tests. - - * psycopg/xid_type.c (xid_len, xid_getitem): implement sequence - behaviour, as required for transaction IDs. - (XidType): There is no point in allowing subclasses of Xid. - - 2008-07-23 James Henstridge - - * psycopg/connection_type.c (psyco_conn_xid): add a - Connection.xid() method that instantiates Xid objects. - - * psycopg/psycopgmodule.c (init_psycopg): initialise the Xid - object type. - - * psycopg/xid.h: - * psycopg/xid_type.c: Implement a basic transaction ID object for - use in two phase commit. - - 2008-05-12 James Henstridge - - * beginnings of a TPC test harness - -2010-10-05 Daniele Varrazzo - - * psycopg/cursor_type.c: Common code in execute() and mogrify() merged. - - * psycopg/cursor_type.c: cursor.mogrify() accepts unicode queries. - -2010-09-23 Daniele Varrazzo - - * lib/errorcodes.py: Added PostgreSQL 9.0 error codes. - -2010-08-05 Daniele Varrazzo - - * psycopg/connection_int.c: don't execute a ROLLBACK on close()/GC. - The command wasn't sent since 2.2.0 due to a bug, but after a ML - discussion this behaviour proved more correct so the bug has become a - feature. - -2010-07-18 Federico Di Gregorio - - * Release 2.2.2. - -2010-07-09 Daniele Varrazzo - - * psycopg/cursor_type.c: executemany() propagates exceptions raised by the - iterable to the caller. - - * lib/pool.py: dropped logging.basicConfig() call. It messes up with - projects using logging but where no handler is installed on the root - logger. Bug reported by Joe Abbate. - - * psycopg/cursor_type.c: exceptions raised in the columns iterator of the - copy methods propagated to the caller. - -2010-05-20 Daniele Varrazzo - - * psycopg/typecast_datetime.c: Round seconds in historical timezones to - the nearest minute. - - * lib/extras.py: register_tstz_w_secs() is now no-op. - -2010-05-17 Federico Di Gregorio - - * Release 2.2.1. - - * Builds again on Windows. - -2010-05-16 Federico Di Gregorio - - * Release 2.2.0. - -2010-05-15 Federico Di Gregorio - - * typecast.c: Fixed problem related to receiving None from Python - when a string was expected. - -2010-05-07 Daniele Varrazzo - - * psycopg/adapter_datetime.c: Fixed TimestampFromTicks for second - values > 59.5. - - Bug reported and fixed by Jozsef Szalay on 2010-05-06 at 14:11:59.999920. - - * psycopg/adapter_datetime.c: Fixed same bug for TimeFromTicks. - -2010-05-04 Daniele Varrazzo - - * Added typecasters for arrays of specific MX/Py time-related types. - - * psycopg/adapter_[mx]datetime.c: Explicit cast of the SQL representation - of time-related objects. - -2010-05-03 Daniele Varrazzo - - * psycopg/adapter_binary.c: Adapt buffer objects using an explicit cast on - the string literal (bug reported by Peter Eisentraut) - -2010-04-20 Daniele Varrazzo - - * lib/pqpath.c: Fixed reference leak in notify reception. - - * Notifies are collected if available after every query execution. - -2010-04-13 Daniele Varrazzo - - * lib/extensions.py: DECIMAL typecaster imported from _psycopg. - - * lib/extensions.py: PY* and MX* time typecaster imported from _psycopg. - -2010-04-11 Daniele Varrazzo - - * psycopg/connection_type.c: Correctly parse keywords in connect(). - -2010-04-07 Daniele Varrazzo - - * 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 - - * Fixed problem with asynchronous NOTIFYs. - - * Integrated async pacthes from Jan's git tree. - -2010-03-13 Federico Di Gregorio - - * Release 2.0.14. - -2010-03-11 Federico Di Gregorio - - * setup.py: one-liner from Devrim GÜNDÜZ to build with PostgreSQL - alpha. - -2010-02-28 Federico Di Gregorio - - * 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 - - * Added new Decimal adapter that correctly converts NaN and infinity - to PostgreSQL NaN numeric values. Also added tests. - -2010-02-15 Daniele Varrazzo - - * lib/errorcodes.py: Updated to PostgreSQL 8.4; added lookup() function. - -2010-02-12 Daniele Varrazzo - - * 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 - - * 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 - - * License migration: psycopg2 is now LGPL3 + OpenSSL exception. - - * TODO file was never updated so lets remove it. - -2010-02-10 Federico Di Gregorio - - * lib/extras.py: fixed register_tstz_w_secs() error as reported by - Karsten Hilbert. - -2009-11-25 Federico Di Gregorio - - * 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 - - * psycopg/adapter_pfloat.c: applied patch from Remy Blankto fix float - loss of precision. - -2009-10-04 Federico Di Gregorio - - * 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 - - * 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 - - * Applied patch from Robert Munro to fix version check - in ZPsycopgDA. - -2009-05-10 Federico Di Gregorio - - * 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 - - * setup.py: applied patch from Elvis Pranskevichus to make - PostgreSQL version detection more robust. - -2009-04-20 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * psycopg/config.h: added check to provide compatible isinf() - for Solaris (thanks to Jeremy Mason.) - -2009-02-23 Federico Di Gregorio - - * Release 2.0.9. - -2009-02-17 James Henstridge - - * 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 - - * FreeBSD now has round(). Modified config.h as suggested by - Jeroen Ruigrok van der Werven. - -2009-02-06 Federico Di Gregorio - - * 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 - - * 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 - - * Fixed problem reported by Lawrence Oluyede where - register_type() didn't work on connection and cursors - suclasses. - -2009-01-10 Federico Di Gregorio - - * psycopg/cursor_type.c: cursor.isready() now raise an exception - when the libpq PQconsumeInput() call fails. - -2008-12-04 Federico Di Gregorio - - * 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 - - * 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 - - * lib/extras.py: added inet support and related tests. - -2008-09-23 James Henstridge - - * psycopg/psycopg.h (NotSupportedError_doc): clean up - spelling/grammar a bit, using exception description from the PEP. - -2008-09-23 Federico Di Gregorio - - * Applied patch from Brian Sutherland that fixes NULL - valus in UUID support. - -2008-09-19 Federico Di Gregorio - - * lib/extras.py: added UUID support, modeled after the code - sent by Brian Sutherland. - -2008-09-16 Federico Di Gregorio - - * Release 2.0.8. - -2008-07-26 Federico Di Gregorio - - * psycopg/connection_type.c: merged get_backend_pid() method - by Casey Duncan. - -2008-07-23 James Henstridge - - * 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 - - * 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 - - * 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 - - * 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 - - * setup.py: fixed problem with spaces in pg_config path. - -2008-05-27 Federico Di Gregorio - - * 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 - - * psycopg/cursor_type.c: fixed memory leak in .executemany(); on - error "iter" was not dec'reffed. - -2008-05-06 James Henstridge - - * 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 - - * psycopg/lobject.h: don't export the lobjectType symbol. - -2008-05-05 Federico Di Gregorio - - * Fixed sun build problem by adding "sun" to config.h checks. - -2008-05-05 James Henstridge - - * 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 - - * 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 - - * 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 - - * 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 - - * Release 2.0.7. - -2008-03-31 James Henstridge - - * 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 - - * 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 - - * psycopg/connection_int.c (conn_notice_callback): don't leak - notice messages. - -2008-03-17 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * psycopg/pqpath.c (_pq_fetch_tuples): Don't call Python APIs - without holding the GIL. - -2008-02-27 James Henstridge - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Applied win32 patch from Jason Erickson. - - * Applied patch from Thomas Lotze to use correct version - for new Zopes. - -2007-12-20 James Henstridge - - * 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 - - * 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 - - * Use escape string syntax for string escape if connected to a - server requiring it. - -2007-11-09 Daniele Varrazzo - - * 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 - - * Fixed bug #192 (Decimal support not safe for use with multiple sub - interpreters) as proposed by Graham Dumpleton. - -2007-09-08 Federico Di Gregorio - - * Added MonoDevelop project, yahi! - -2007-09-06 Federico Di Gregorio - - * Fixed bug #194. - -2007-09-01 Federico Di Gregorio - - * Added "name" parameter to all .cursor() calls in extras.py. - -2007-05-29 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * Applied patch from Jason Erickson to fix win32 build glitches. - -2007-04-11 Federico Di Gregorio - - * 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 - - * 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 - - * Added support for per-connection and per-cursor typecasters. - -2007-02-11 Federico Di Gregorio - - * 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 - - * Release 2.0.6b1. - - * Added encodings patch from Karsten Hilbert. - -2007-01-19 Federico Di Gregorio - - * 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 - - * 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 - - * Applied patch from Jason Erickson to make psycopg build - again on win32 (closes: #132). - -2006-09-30 Federico Di Gregorio - - * 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 - - * 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 - - * Fixed syntax error in lib/extras.py (see #123) - -2006-09-02 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Applied better PostgreSQL patch from AA. - -2006-05-24 Federico Di Gregorio - - * 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 - - * setup.py: fixed little problem with mx_include_dir as suggested - by kvc (this closes #102). - -2006-04-24 Federico Di Gregorio - - * 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 - - * lib/extras.py: added .next() to DictCursot to support iteration. - -2006-03-02 Federico Di Gregorio - - * psycopg/typecast_array.c (typecast_array_tokenize): removed cast - to build without warnings on 64 bit arches. - -2006-02-11 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * setup.py: libpq.dll not used anymore. win32 setup uses pg_config too. - -2006-01-05 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * lib/extras.py: added .callproc() to DictCursor as suggested - by Philip Semanchuk. - -2005-11-29 Federico Di Gregorio - - * MANIFEST.in: added docs/async.txt. (Closes: #75) - -2005-11-26 Daniele Varrazzo - - * psycopg/psycopgmodule.c: fixed exceptions refcount. - - * Fixed lots of doctrings and added Epydoc-generated docs support. - -2005-11-24 Federico Di Gregorio - - * 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 - - * psycopg/typecast.c: fixed problem with microseconds conversion by - applying slightly modified patch from Ronnie Mackay. - -2005-11-19 Federico Di Gregorio - - * 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 - - * ZPsycopgDA/pool.py: fixed connections leak by using the new name - (PersistentConnectionPool) for the old connection pool class. - -2005-11-16 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * setup.cfg: added include_dirs line for SUSE 9.3. - -2005-10-22 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * lib/pool.py: applied patch from piro to avoid the scan of the - whole connection array on getconn(). - -2005-09-12 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * psycopg/config.h: added __sun__ to the symbols checked for round() - -2005-07-21 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * psycopg/cursor_type.c (_psyco_curs_execute): fixed segfault when - not passing string or unicode to .execute(). - -2005-06-01 Federico Di Gregorio - - * 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 - - * 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, - - * tests/types_basic.py: fixed float and binary tests. - -2005-05-26 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * psycopg/microprotocols.c (microprotocols_adapt): fixed memory - leak on None as suggested by gh (closes: #16). - -2005-05-10 Federico Di Gregorio - - * 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 - - * 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 - - * MANIFEST.in: included debian directory. - -2005-04-10 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * lib/extensions.py: Added AsIs import. - -2005-03-12 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * examples/myfirstrecipe.py: fixed adapter registration. - -2005-2-7 Federico Di Gregorio - - * setup.py: added patch by Valentino Volonghi to build on MacOS X. - -2005-01-29 Federico Di Gregorio - - * 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 - - * lib/extensions.py (register_adapter): added register_adapter - function, exported ISQLQuote in psycopg.extensions. - -2005-01-18 Federico Di Gregorio - - * 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 - - * 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 - - * Added debian directory (thanks to W. Borgert who sent initial - patch based on cdbs.) - -2004-12-20 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * psycopg/cursor_type.c (_mogrify): ported %% fix from 1.1.15. - -2004-11-20 Federico Di Gregorio - - * 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 - - * psycopg/connection_type.c (psyco_conn_cursor): renamed 'cursor' - argument to 'cursor_factory'. - -2004-11-19 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * psycopg/cursor_type.c (cursor_dealloc): fixed small memory leak - due to missing disposal of self->pgres. - -2004-9-14 Federico Di Gregorio - - * examples/dialtone.py: Added adapt() example by Valentino - Volonghi. - -2004-09-14 Federico Di Gregorio - - * 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 - - * psycopg/cursor_type.c (_mogrify): and qattr is gone. - -2004-09-05 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * psycopg/typecast_datetime.c: ported interval fix from 1.1.x. - -2004-05-16 Federico Di Gregorio - - * 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 - - * ported time interval patch by Ross Cohen from 1.1.12. - -2004-04-19 Federico Di Gregorio - - * 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 - - * 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 - - * setup.py: Various changes. The critical ones: - - Make an empty pthread.h file so all the code doing an - #include 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 - - * 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 - - * 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 - - * Release 1.99.4. - -2004-04-09 Federico Di Gregorio - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * connection_int.c (conn_commit/conn_rollback): added code to - commit/rollback and connection methods. - -2004-01-04 Federico Di Gregorio - - * cursor_type.c (psyco_curs_fetchone): added fetchone method. - -2004-01-03 Federico Di Gregorio - - * 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 - - * cursor_type.c (_mogrify_sequence): added sequence mogrification, - can be done better, on the dict model. - -2003-07-28 Federico Di Gregorio - - * 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 - - * connection_type.c (psyco_conn_close): added .close() - method. wow. - - * cursor_*.c: added basic cursor interface (new-style.) - -2003-07-20 Federico Di Gregorio - - * 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. - -