Skip to content
  1. Nov 20, 2006
    • emarsden's avatar
      [pg @ 2006-11-20 20:50:36 by emarsden] · 22cb3e7f
      emarsden authored
      Add an ABORT keyword argument to PG-DISCONNECT (from Robert J.
      Macomber <pgsql@rojoma.com>), as per CL:CLOSE.
      
        "I've run into a problem with pg-disconnect if something abnormal
         happens to the database connection -- if the database goes away for a
         restart while pg has a connection open, for example.  When this
         happens, pg-disconnect fails, and the socket file descriptor is left
         open (presumably for a finalizer to clean up), also raising a new
         error from the unwind-protect in with-pg-connection.  To guard against
         the possibility, I've added an :abort parameter to pg-disconnect, like
         cl:close has, and made with-pg-connection call it with :abort t if the
         body exits abnormally, in the same way that with-open-file operates.
         When :abort is true, the modified pg-disconnect closes the database
         connection ungracefully, including making the close call abort
         (otherwise, sbcl at keast tries to flush the stream, raising another
         error if the database isn't there anymore)."
      
      darcs-hash:aad628cf0093846dca55fe4f8fa47b0db89249c2
      22cb3e7f
  2. Oct 22, 2006
  3. Mar 05, 2004
    • emarsden's avatar
      [pg @ 2004-03-05 18:08:08 by emarsden] · e981262b
      emarsden authored
      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
      
      darcs-hash:00b6e900f7b48953d959f95e55c26ecee52efb37
      e981262b