--- cl-pg-20061022.orig/ChangeLog +++ cl-pg-20061022/ChangeLog @@ -0,0 +1,532 @@ +2006-10-22 21:29 emarsden + + * parsers.lisp: + + - implement basic parsing support for the PostgreSQL record type + + - supply a utility function to escape binary data into a format that + can be used within an SQL string to initialize a field of type + BYTEA + + - add optimize declarations for improved performance + +2006-10-22 21:25 emarsden + + * v3-protocol.lisp: + + Fixes to the prepared statement support, in order to implement precise + error reporting. Deadlocks were possible with previous version, where + pg-dot-lisp would be blocked waiting for input from the backend that + never arrived. + + Also some code cleanups. + +2006-10-22 21:22 emarsden + + * sysdep.lisp, utility.lisp: + + Code cleanups. + +2006-10-22 17:48 emarsden + + * v3-protocol.lisp: + + Allow NULL values for bound variables in prepared statements. Bug + pointed out by Steve Purcell . + +2006-09-30 18:51 emarsden + + * pg.asd, sysdep.lisp: + + Add unix-domain socket support for Allegro CL (tested with Express + edition for Linux/x86). + +2006-09-24 23:19 emarsden + + * pg-tests.lisp: + + More additions to the testing code: testing reporting of floating point overflow + and underflow, array syntax, more bitvector tests. + +2006-09-24 17:50 emarsden + + * sysdep.lisp, v3-protocol.lisp: + + Disabling buffering of the socket stream on CLISP greatly improves performance. + +2006-09-24 17:14 emarsden + + * pg-tests.lisp: + + Added numerous additional tests, for string support, various types of + errors signaled by PostgreSQL, integer overflow, transactions, arrays, + bit-tables, prepared statements using TEXT parameters. + +2006-09-24 17:08 emarsden + + * TODO, v3-protocol.lisp: + + Make the v3 protocol ERROR-RESPONSE inherit from BACKEND-ERROR. + +2006-09-23 14:24 emarsden + + * NEWS, README, TODO, sysdep.lisp: + + - on CL implementations that support Unix sockets, the HOST argument + to PG-CONNECT may designate the directory containing the local + PostgreSQL unix socket (often "/var/run/postgresql/"). The HOST + argument is assumed to designate a local directory rather than a + hostname when its first character is #\/. You may need to modify + authentication options in the PostgreSQL configuration file + pg_hba.conf to allow connections over a unix-domain socket where + the databse username is not equal to your ident tokens. This is an + incompatible change to previous support for unix-domain sockets + with CMUCL (previously a HOST of NIL told pg-dot-lisp to connect + to a unix-domain socket whose name was hardwired into the library). + This support currently exists for SBCL, CMUCL and OpenMCL. + +2006-09-19 08:57 emarsden + + * v3-protocol.lisp: + + Remove the limit on maximum message size when using the v3 protocol + (from Johan Ur Riise ). + +2006-09-18 23:37 emarsden + + * v3-protocol.lisp: + + Fix problems with text data in prepared statements. Unlike the rest of + the protocol, strings are not sent NUL-terminated. + +2006-09-18 23:33 emarsden + + * sysdep.lisp: + + Make comparison in IMPLEMENTATION-NAME-FOR-ENCODING case-insensitive + (from ya007@yandex.ru). + +2006-09-18 21:10 emarsden + + * pg.lisp: + + Documentation fix for PG-EXECUTE. + +2006-09-18 21:10 emarsden + + * pg.asd: + + Put the PG defsystem in its own package. + +2006-09-18 21:09 emarsden + + * README: + + Fix to the prepared statement example. + +2006-09-15 22:49 emarsden + + * README, pg.lisp, v3-protocol.lisp: + + Improved documentation and a basic example for the use of execution + plans (prepared statements). + +2006-09-15 22:04 emarsden + + * v3-protocol.lisp: + + Fix bug in PG-CLOSE-STATEMENT (thanks to ya007@yandex.ru). + +2006-08-28 22:08 emarsden + + * README, pg.lisp, v3-protocol.lisp: + + Fixes to client-encoding support, based on a bug report from Johan Ur + Riise . Not tested very heavily (but the tests + work in UTF-8 mode with unicode-enabled SBCL and CLISP). + +2006-01-27 19:03 emarsden + + * sysdep.lisp: + + Fix for encoding support for CLISP and OpenMCL (encoding still not + working correctly). + + OpenMCL fix from Risto Laakso. + +2006-01-27 18:51 emarsden + + * md5.lisp, pg.asd: + + Load sb-rotate-byte from the ASD file. + +2006-01-25 20:25 pvaneynde + + * pg.lisp: + + fix typo in pg-close-portal documentation + +2005-12-19 23:29 emarsden + + * CREDITS, README, parsers.lisp: + + Fix to timezone handling when parsing timestamps (timezone offset can + be negative). + + From Katsuya Tomioka. + +2005-12-19 23:21 emarsden + + * sysdep.lisp: + + Fix the SB-ROTATE-BYTE dependency for SBCL (was loaded twice, with + unfortunate consequences). + + Add support for unix-socket connections to the backend for SBCL. + + (Thanks to Andreas Fuchs) + +2005-12-19 23:18 emarsden + + * sysdep.lisp: + + Fix sockets for recent ABCL versions. + + Modify the client-encoding code to work with multiple implementations + (incomplete testing). + +2005-12-19 23:16 emarsden + + * meta-queries.lisp: + + Add a utility function PG-DESCRIBE-TABLE. + +2005-10-18 15:07 pvaneynde + + * pg.asd, sysdep.lisp, v3-protocol.lisp: + + Modified sbcl unicode support, works for me. + Moved requires into asdf package, otherwise we get asdf package problems, unknown if it works with other lisps + +2005-07-17 17:49 emarsden + + * README: + + Note that the current code has been tested against PostgreSQL 8.0 + (with both v2 and v3 protocol versions). + +2005-07-17 17:48 emarsden + + * large-object.lisp, lowlevel.lisp, pg.lisp, v2-protocol.lisp, + v3-protocol.lisp: + + Make PGLO-READ a generic function, with specializations on the v2 and + v3 protocols. The difference is necessary because the v2 protocol + reads large-object data in text, whereas the v3 protocol changed to + use a binary format. + +2005-07-17 17:46 emarsden + + * sysdep.lisp: + + Use the updated MD5 code, that operates on octet arrays rather than + strings. + +2005-07-17 17:44 emarsden + + * defpackage.lisp, md5.lisp, pg.asd, stone-age-load.lisp: + + Update to a more recent version of md5.lisp, taken from SBCL's SB-MD5 + contrib. The change is motivated by the fact that SBCL generates a runtime + error "function declared not to return returned" with the current + code. Made a few changes to make the code compile in other Common Lisp + implementations. + +2005-07-17 15:49 emarsden + + * pg-tests.lisp: + + Minor fix to tests for PostgreSQL 8.0: the MONEY type is deprecated. + +2005-07-17 15:46 emarsden + + * parsers.lisp, sysdep.lisp, v3-protocol.lisp: + + Three fixes from Björn Lindberg : + + - Two trivial bugs with regards to use with Allegro + + - Handling of the special timestamp values infinity and -infinity. They + gave an error, but now returns the symbols :INFINITY and :-INFINITY + respectively. + + - A bug in the version 3 of the protocol, where it would return NIL for + fields in the database containing the empty string, rather than an + empty string. + +2005-05-04 22:51 pvaneynde + + * sysdep.lisp: + + possible sbcl unicode fix + +2004-09-20 00:32 pvaneynde + + * v3-protocol.lisp: + + Corrected wrong code for Close Complete + +2004-09-20 00:13 pvaneynde + + * v3-protocol.lisp: + + fixed extended queries for newer versions of postgreSQL, they need the sync message + +2004-09-07 14:52 emarsden + + * CREDITS, parsers.lisp, pg-tests.lisp: + + Add support for the SQL NUMERIC type, thanks to Risto Sakari Laakso. + Was previously being parsed as an integer, but is in fact a fix-precision + floating-point number. + +2004-08-13 18:50 emarsden + + * large-object.lisp, pg-tests.lisp, v3-protocol.lisp: + + Implement binary-mode transfers for large-object operations in the v3 + protocol. The v2 protocol transfers arguments in binary mode, but the + v3 protocol requires the client to specify for each argument of a + FunctionCall whether it is encoded as binary or as text. + + - add possibility to send (unsigned-byte 8) arguments to function calls + + - add a method READ-OCTETS-FROM-PACKET that reads raw octets + + - make PG-IMPORT and PG-EXPORT use binary I/O + + - PGLO-READ reads data in binary + + - change the large-object tests to use binary I/O (fixes the pglo test) + +2004-08-13 18:45 emarsden + + * parsers.lisp: + + Trivial. + +2004-08-11 15:27 emarsden + + * parsers.lisp, pg-tests.lisp, pg.asd, stone-age-load.lisp, + sysdep.lisp, v3-protocol.lisp: + + add a file that does a manual load of pg + +2004-08-11 15:26 emarsden + + * CREDITS, NEWS, TODO: + + layout of documentation + +2004-04-22 19:00 emarsden + + * v3-protocol.lisp: + + + Comment-only patch: mark the places in the v3-protocol code where charset + encoding problems will have to be addressed. + + It's probably not worth going through the v2-protocol code to fix these + issues, since it has too many places where READ-CSTRING is confused with + READ-OCTET-ARRAY. + +2004-04-22 18:57 emarsden + + * defpackage.lisp: + + + - export the *PG-CLIENT-ENCODING* variable from the PG package + +2004-04-21 21:27 emarsden + + * v3-protocol.lisp: + + + A provisional fix for large object support: the test case (whose + large-object component only runs on CMUCL) was resetting the connection + during the IMPORT/EXPORT test, due to an unexpected #\V packet + (FunctionCallResponse) in DO-FOLLOWUP-QUERY. It's still not clear why a + FunctionCallResponse should be received anywhere other than in FN. + This test is currently failing due to CR -> "\012" corruption that I haven't + debugged. + +2004-04-21 21:23 emarsden + + * parsers.lisp: + + From Sven Van Caekenberghe: + + - fix to PARSE-TIMESTAMP when no milliseconds are present + + - make use of :start and :end arguments to PARSE-INTEGER to reduce consing + +2004-04-20 14:59 emarsden + + * md5.lisp: + + + - imported file, with some minor changes to Pierre Mai's original code + to improve portability (mostly adding EVAL-WHEN clauses). + +2004-04-01 20:35 emarsden + + * README, pg.asd, sysdep.lisp, v2-protocol.lisp, v3-protocol.lisp: + + + - add md5 authentication (thanks to Brian Mastenbrook). Uses Pierre Mai's + portable md5.lisp library, that has been added to the project (with extra + EVAL-WHENness to please OpenMCL and ACL). + + Tested with CMUCL, SBCL, OpenMCL, CLISP, ACL 6.1. ABCL does not compile + md5.lisp, probably for more EVAL-WHEN reasons. Only tested with PostgreSQL + version 7.4. + +2004-03-20 22:48 pvaneynde + + * pg-tests.lisp, v3-protocol.lisp: + + now COPY IN/OUT actually works, also created test-case + +2004-03-17 19:15 emarsden + + * v3-protocol.lisp: + + + - fix bogus type declaration + + - remove bogus use of CMUCL's finalization (can't reference dying + object from the finalizer) + +2004-03-17 19:13 emarsden + + * sysdep.lisp: + + - changes for Armed Bear Lisp: change to new API for binary socket + streams; autoload a working FORMAT + +2004-03-09 17:27 pvaneynde + + * defpackage.lisp, v3-protocol.lisp: + + untested COPY IN/OUT code. I am not happy about how this looks... + +2004-03-08 19:12 emarsden + + * lowlevel.lisp, sysdep.lisp, v2-protocol.lisp, v3-protocol.lisp: + + - improvements to the system-dependent functionality: OpenMCL is + able to use a local connection to the backend; most + implementations resignal connection errors as a postgres-error. + + - fixes to the lowlevel code + +2004-03-08 17:45 emarsden + + * lowlevel.lisp, pg-tests.lisp, v3-protocol.lisp: + + + - fix to the lowlevel factorization + + - modify parameter handling in v3 protocol to add parameters to the + connection object, instead of issuing a warning + +2004-03-08 16:01 emarsden + + * CREDITS, NEWS, README, lowlevel.lisp, pg-tests.lisp, pg.asd, + pg.lisp, v2-protocol.lisp, v3-protocol.lisp: + + More factorization of lowlevel functions between v2 and v3 protocols. + +2004-03-08 15:38 pvaneynde + + * defpackage.lisp: + + added pbe functions + +2004-03-08 15:37 pvaneynde + + * pg-tests.lisp: + + added pbe test + +2004-03-08 15:37 pvaneynde + + * parsers.lisp: + + added type-to-oid table and lookup-type function to aid in bpe operations + +2004-03-08 15:37 pvaneynde + + * pg.lisp, v3-protocol.lisp: + + pg.lisp: + - make print-object more robust + - added documentation to the defgenerics + - added some declarations + v3-protocol.lisp: + - make errors restartable as we hope to + sync again with the db + - return errors from read-packet because + sometimes it is the only clue we get + that there is no more output + - replaced arefs with the faster elt + - unified query followup into do-followup-query + - added pbe (prepare bind execute) support + +2004-03-06 23:59 pvaneynde + + * pg.asd: + + the crypt library actually is loaded in sysdep.lisp + +2004-03-05 19:08 emarsden + + * CREDITS, TODO, large-object.lisp, meta-queries.lisp, + parsers.lisp, pg-tests.lisp, pg.asd, pg.lisp, sysdep.lisp, + utility.lisp, v2-protocol.lisp, v3-protocol.lisp: + + + Integrate Peter Van Eynde's v3 protocol support: + + - create PGCON-V2 and PGCON-V3 classes + - PG-CONNECT attempts to connect using v3 protocol, and falls back + to v2 protocol for older backends; return a PGCON-V2 or PGCON-V3 + object + - PG-EXEC and FN and PG-DISCONNECT are generic functions that + dispatch on the connection type + - protocol code split into v2-protocol.lisp and v3-protocol.lisp + + TBD: cleaning up the notification & error reporting support, and + factorizing more code between the two protocol versions. + + Also split code out into multiple files: + + - large-object support + - metainformation about databases + - parsing and type coercion support + - utility functions and macros + +2004-03-03 14:11 emarsden + + * NEWS, README, cmucl-install-subsystem.lisp, defpackage.lisp, + pg-tests.lisp, pg.asd, pg.lisp, sysdep.lisp: + + Initial revision + +2004-03-03 14:11 emarsden + + * NEWS, README, cmucl-install-subsystem.lisp, defpackage.lisp, + pg-tests.lisp, pg.asd, pg.lisp, sysdep.lisp: + + initial import + --- cl-pg-20061022.orig/debian/control +++ cl-pg-20061022/debian/control @@ -2,12 +2,14 @@ Section: devel Priority: optional Maintainer: Peter Van Eynde -Build-Depends-Indep: debhelper (>> 4.0.0) -Standards-Version: 3.6.2.1 +Build-Depends: debhelper (>> 4.0.0) +Build-Depends-Indep: dh-lisp +Standards-Version: 3.7.2.0 +XS-Vcs-Darcs: http://cl-debian.alioth.debian.org/repository/pvaneynd/cl-pg/ Package: cl-pg Architecture: all -Depends: common-lisp-controller (>= 3.45), cl-asdf +Depends: ${misc:Depends}, cl-asdf Description: Common Lisp library that provides a socket level postgresql interface Pg is a socket-level interface to the PostgreSQL object-relational Database. The Library implements the client part of the frontend/backend --- cl-pg-20061022.orig/debian/changelog +++ cl-pg-20061022/debian/changelog @@ -1,8 +1,34 @@ -cl-pg (20061225-2) UNRELEASED; urgency=low +cl-pg (1:20061022-1) unstable; urgency=low - * token new version + * Added XS-X-Vcs-Darcs header + * modified S-X-Vcs-Darcs to XS-Vcs-Darcs field + * New upstream with many bugfixes - -- Peter Van Eynde Thu, 26 Jan 2006 16:48:40 +0100 + -- Peter Van Eynde Tue, 24 Oct 2006 15:03:38 +0200 + +cl-pg (1:20060919-1) unstable; urgency=low + + * New upstream version with several important bugfixes + * Updated standards version without real changes. + + -- Peter Van Eynde Wed, 20 Sep 2006 20:29:49 +0200 + +cl-pg (1:20060207-2) unstable; urgency=low + + [ René van Bevern ] + * debian/control: get dependencies right: depend on ${misc:Depends} + instead of common-lisp-controller explicitly and put debhelper to + Build-Depends + + -- Peter Van Eynde Mon, 19 Jun 2006 07:58:55 +0200 + +cl-pg (1:20060207-1) unstable; urgency=low + + * Added missing Build-Depends on 'dh-lisp' (Closes: #351770) + * New upstream + * Added epoch to handle version stupidity + + -- Peter Van Eynde Tue, 7 Feb 2006 16:15:30 +0100 cl-pg (20061225-1) unstable; urgency=low