psycopg2/ChangeLog
Federico Di Gregorio 7034af0de5 Preparing 2.0.1.
2006-06-09 00:06:38 +00:00

1111 lines
36 KiB
Plaintext

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.