[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile-pg 0.18 available
guile-pg 0.18 available
Mon, 22 Mar 2004 13:16:24 +0100
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
This is alpha code (pre 1.0 release). It has bugs, and the
interfaces may change from version to version.
anoncvs instruction and tarball in dir:
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.
- 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
- 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).
- 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)
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))
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
(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]
|[Prev in Thread]
||[Next in Thread]|
- guile-pg 0.18 available,
Thien-Thi Nguyen <=