Log message:
Update to 0.44. Because guile-pg now works with mainstream guile,
switch from guile16 to guile (currently 1.8), and remove the special
accomodations for 1.6.
- 0.44 | 2012-04-20
- distribution now .tar.xz
If you have GNU tar, you can use "tar xf" and it will DTRT.
If not, you can use "xz -dc TARBALL | tar xf -" to unpack.
- bugfix: âpg-get-copy-dataâ handles unspecified âasync?â
Previously, if âasync?â was unspecified, it was incorrectly
interpreted as true (i.e., "not false"). Now, if unspecified,
it is interpreted correctly as false.
- testing slack for pre-8.1 âpg-client-encodingâ
Previously, the types-table test was too strict when checking
the âpg-client-encodingâ return value, expecting "UTF-8" only.
Now, it accepts also "UNICODE", which is the norm for PostgreSQL
prior to 8.1.
- support for âmake check KEEPD=1â
If you run "make check" many times, you can avoid daemon bounce
overhead by specifying âKEEPD=1â, which inhibits daemon killing.
- maintenance tools
- GNU Autoconf 2.68
- GNU Automake 1.11.5
- GNU Libtool 2.4.2
- Guile-BAUX 20120309.1509.1c4bb92
- SNUGGLE 0.1
- 0.43 | 2012-02-06
[PBI] means "WARNING: potentially backward-incompatible".
- bugfix: âsql-quoteâ translates backslash (#\\) to â\134â
Previously, backslash characters were passed through
unmodified. Now, they are translated to the string "\134"
(i.e., the four characters â#\\â, â#\1â, â#\3â, \
â#\4â).
- [PBI] âbyteaâ stringifier outputs only one backslash
If the âbyteaâ stringifier from â(database postgres-types)â is
used standalone, this represents a BACKWARD INCOMPATIBLE change.
In the normal case, however, where the stringifier is used in
conjunction with âsql-quoteâ, this change is transparent.
- new (database postgres-qcons) proc: string-xrep
Some versions of Guile emit â\xXXâ to represent the octet with
hex value XX when constructing the external representation of a
string, for certain octets. Furthermore, some versions of
PostgreSQL cannot grok such escape sequences anyway. The new
procedure âstring-xrepâ is like âobject->stringâ (for a \
string
arg) except that it explicitly emits the octet itself, except
for â#\\â and and â#\"â, which are backslash-escaped \
as normal.
- â(database postgres-qcons) idquoteâ no longer emits â\xXXâ
Before, âidquoteâ used âobject->stringâ internally, and thus
suffered from the problems described in the preceding NEWS
entry. Now, it uses âstring-xrepâ.
- â(database postgres-col-defs) validate-defâ more permissive
A column name may now be any symbol that does not contain
whitespace. Previously it was restricted to a symbol whose
constituent characters were alphanumeric or underscore.
This change makes Guile-PG less strict (in some sense) than
PostgreSQL, which imposes other rules. Overarching is the
recommendation from PostgreSQL to consistently use a "delimited
identifier" (aka "quoted identifier") rather than a naked name.
That's what âidquoteâ and âstring-xrepâ, both used extensively
in Guile-PG, do. See section "Identifiers and Key Words" in
chapter "SQL Syntax" in the PostgreSQL documentation, for more
information.
- âpgtable-managerâ and âpgtable-workerâ likewise relaxed
These use â(database postgres-col-defs)â procs and new proc
âstring-xrepâ internally, and thus benefit from the changes
mentioned in the preceding NEWS entries. Notably, table and
column names are less constrained. For example, see file
test/types-table.scm, proc âtest-m2â.
[Probably "relaxed" is not as good as "strictness relaxed and
multi-byte-fu enhanced", but that does not fit on one line.]
- fake cluster created on-demand for "make check"
In addition to a fake installation, "make check" now also
creates a cluster under test/fake-cluster/ configured for
Unix-domain connections, and kicks/kills the daemon around the
actual âruntest TESTâ invocations. This means it is no longer
necessary to set env var âPGDATABASEâ. In fact, that and env
var âPGHOSTâ are now silently ignored, since âruntestâ clobbers
them internally.
If you previously tested Guile-PG against different PostgreSQL
versions by varying âPGDATABASEâ, you now need to vary env var
âINITDBâ instead, and zonk the cluster before the "make check"
invocation. Something like:
$(MAKE) delete-cluster
$(MAKE) check DEBUG=1 INITDB=/a/particular/initdb
in directory test/ would be fine. See README section "Testing".
- 0.42 | 2011-10-04
- bugfix: "make check" no longer clobbers installed file
For Guile versions that require a Scheme wrapper for .so loading
(i.e., Guile 1.8 and later), "make check" does a fake install w/
a âprefixâ in the build tree. Unfortunately, in Guile-PG 0.41,
that dir was not specified to the Scheme wrapper, resulting in
its installation under the "real" (as determined / set by the
configure script) âprefixâ.
The system would reamin in this inconsistent state, with the
wrapper pointing into the build tree, until "make install", at
which point everything was resynchronized. Obviously, if you
never do "make install", the problem persists (silently, until
the build tree is deleted).
This has now been fixed. If you did a "make check" but NOT
"make install" of Guile-PG 0.41, the best way forward is to
configure Guile-PG 0.42 and then "make install; make uninstall".
- âpg-printâ now does âfflushâ after each operation
This probably kills performance, but it is safer, given Guile's
direct use of âwrite(2)â et al.
- âpg-set-client-encoding!â also accepts symbolic encoding
- 0.41 | 2011-09-29
- Bugs fixed
- Make âidquoteâ special-case â*â in second part.
was: (display (idquote 'a.*)) |= "a"."*"
now: (display (idquote 'a.*)) |= "a".*
- Call âstring-appendâ with strings, not symbols.
We no longer rely on this particular Guile 1.4 slack.
- Portability fixes (tested w/ Guile 1.8.7)
With the following (and other, non-user-visible) changes, "make
check" no longer displays "foo is deprecated" messages with
Guile 1.8.7. If you see them for your system, for either "make
check" or subsequent Guile-PG use, please report that as a bug.
- Don't do "defer/allow ints" for Guile 1.8+.
- Revamped Scheme object to C byte range for Guile 1.8+
Access to Scheme string representation was curtailed in Guile
1.8 (API available but deprecated), so all operations that pass
a C byte range to libpq functions now incur an extra conversion
step. The unfortunate user-visible result is performance loss.
- Planned retirement
- procedure â(database postgres) pg-getlineâ
- procedure â(database postgres) pg-getlineasyncâ
These procedures are obsoleted by âpg-get-copy-dataâ and
WILL BE REMOVED by 2012-12-31.
- New fluid to control â(database postgres-qcons) sql-quoteâ
The fluid âsql-quote-auto-E?â controls whether or not
âsql-quoteâ should check for â\â (backslash) characters and
prefix an "E" in that case. This is relevant if you use
PostgreSQL 8.2+.
- New support for "hex format" in âbyteaâ objectifier
PostgreSQL 9.0 introduces a more efficient "hex format" for
âbyteaâ output. This is now recognized and parsed, falling back
to handling the traditional "escape format" if not recognized.
- Doc improvements
- Fix omission: Document âpg-get-copy-dataâ arg âasync?â.
- Indices merged into one
- Builtin type converters listed and indexed
- Builtin type converter array variants listed
- For âmake check DEBUG=1â, display the guile(1) invocation.
- Tested w/ latest server versions: 8.[01234], 9.[01]
Additionally, the entries in file test/OK now include the
associated Guile-PG version, and some include a subheading
"other pg" to list the precise server version numbers.
- 0.40 | 2011-06-05
- Changes to configuration
- Bug fixed in finding âpg_encoding_to_charâ, \
âpg_char_to_encodingâ
- Now seeks and arranges to use <postgresql/foo> headers
- No longer clobbers user vars âCPPFLAGSâ, âLDFLAGSâ
- Changes to build / test / install
- Bug fixed: Delete everything on "make uninstall"
- Scheme code now punified for install
- Add "no C module" mode for build / install
- Changes to "make check"
- Flaky symlinking replaced w/ partial in-tree installation
- runtest now honors env var âGUILEâ
- runtest now shows loaded files if env var âDEBUGâ set
- New (database postgres-qcons) proc: idquote
- Docs now explicitly UTF-8
- Tested on more platforms (see file test/OK)
- Maintenance uses AAL 2.68, 1.11.1, 2.4; Guile-BAUX 20110605.1656
|