guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile-pg 0.18 available


From: Thien-Thi Nguyen
Subject: guile-pg 0.18 available
Date: Mon, 22 Mar 2004 13:16:24 +0100

README excerpt:

  Guile-PG is a collection of modules for Guile allowing access to
  the PostgreSQL RDBMS from Scheme programs.
  
  The low-level module `(database postgres)' provides an almost
  one-to-one correspondence with the PostgreSQL "libpq" C library
  interface.  Other higher-level modules, typically named
  `(database postgres-FOO)', provide abstractions and convenience
  procedures.
  
  This is alpha code (pre 1.0 release).  It has bugs, and the
  interfaces may change from version to version.

cvs tag:

  v-0-18

anoncvs instruction and tarball in dir:

  http://www.glug.org/people/ttn/software/guile-pg/

NEWS excerpt below.  basically this release is the usual mix of bug
fixes, new procs, and methodology enhancements.  we haven't turned the
corner yet on async testing, but when we do, it will be easy to notice.

thi


__________________________________________________________________________
  - 0.18 | 2004-03-22
  
    - Variables removed from module (database postgres)
  
        The following variables are obsolete; proc `pg-result-status'
        started returning a symbolic value starting with Guile-PG 0.08
        (2002-12-11).
  
        PGRES_EMPTY_QUERY
        PGRES_COMMAND_OK
        PGRES_TUPLES_OK
        PGRES_COPY_OUT
        PGRES_COPY_IN
        PGRES_BAD_RESPONSE
        PGRES_NONFATAL_ERROR
        PGRES_FATAL_ERROR
  
    - Procs deleted from (database postgres-table)
  
        The following procs are in module (database postgres-col-defs),
        but w/o the "def:" prefix, since Guile-PG 0.15 (2003-01-15).
  
        def:col-name
        def:type-name
        def:type-options
  
    - Bugfix: pg-lo-unlink returns #f only on error
  
        This proc used to consider some non-error status cases as erroneous,
        and return #f as a result.  Now the check is more precise.
  
    - Error output bugfix: Use ~S instead of %s
  
    - Build bugfix: pre-inst.merged-module-catalog conditionally built
  
        The "make" step now checks if prerequisite tools are available
        before attempting to create this file, and uses a fallback
        method if the tools are unavailable.
  
    - Limitation lifted: `pg-exec' query string size
  
        The query string sent to `pg-exec' used to be limited to 7999
        bytes; larger queries were silently truncated.  Furthermore,
        each `pg-exec' call used to perform a string copy whether it
        was needed or not.  Similarly, a 255-byte limit was silently
        enforced for `pg-connectdb', `pg-error-message', `pg-fnumber',
        `pg-putline', and `pg-set-client-encoding!'.
  
        These procedures have been changed to use arbitrary-length input
        strings in situ if possible, and only do a copy if necessary.
  
    - Conditional definitions now unconditional
  
        The following procedures used to be conditionally defined
        (compiled).  Now they are present unconditionally, although
        their return values are still influenced by the condition:
  
        Procedure          Conditional           Return value if
                                              conditional is not met
          ============================================================
        pg-get-pass        HAVE_PQPASS                 #f
        pg-backend-pid     HAVE_PQBACKENDPID           -1
        pg-oid-value       HAVE_PQOIDVALUE             #f
        pg-binary-tuples   HAVE_PQBINARYTUPLES         #f
        pg-fmod            HAVE_PQFMOD                 -1
  
        The idiom for safely using these procs used to be:
  
        (and (defined? 'PROC)
             (PROC ...))
  
        Now, `pg-guile-pg-loaded' returns a list of symbols which
        include the conditionals, sans "HAVE_" prefix, to check.  E.g.:
  
        (and (memq 'PQFMOD (pg-guile-pg-loaded))
             (pg-fmod ...))
  
        Alternatively, you can use the procs without such a pre-check,
        and instead check the return value.
  
    - New (database postgres-meta) proc: defs-from-psql
    - New (database postgres-meta) proc: check-type/elaborate
    - New (database postgres-meta) proc: strictly-check-types/elaborate!
  
    - New (database postgres-table) proc: pgtable-worker
  
    - New (database postgres-types) converter: real
  
    - New (database postgres) procs
  
        See manual for details.
  
      - support for non-blocking queries
  
        (pg-send-query CONN QUERY) => bool
        (pg-consume-input CONN) => bool
        (pg-is-busy? CONN) => bool
        (pg-request-cancel CONN) => bool
        (pg-get-result CONN) => result
  
      - asynchronous version of `pg-getline'
  
        (pg-getlineasync CONN BUF [TICKLE]) => byte-count
  
      - miscellaneous
  
        (pg-conndefaults) => alist of alists
  
    - ChangeLog for subdir test/ split out
  
    - Support for builddir!=srcdir
  
        This means you can invoke the unpacked distribution's configure
        script from another directory, and the "make", "make check" and
        "make install" steps know how to cope.
  
    - Untested procs shown by "make check"
  
        There is a new test "coverage.sh" that displays the names of
        pg-* procs that are defined but not tested by the "make check"
        step.  This list must be empty for a 1.0 release.  To see full
        status (both tested/untested), change directory to test/ and
        invoke the script "cov".
  
        Note that coverage does not imply good coverage!
  
[NEWS excerpt ends here]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]