If you've ever wanted to join PostgreSQL tables from other data you
can access via Perl's DBI, this is your project.

DBI-Link requires PostgreSQL 8.1 or better, and has been tested with Perl
5.8.8.  As DBI-Link 2.0 depends on several features introduced in PostgreSQL
8.1, it will not be back-ported to older versions of PostgreSQL.

The first milestone, which was semi-working prototype code, is a user-visible
function that takes a set of connection parameters to pass to DBI and a string
of SQL. On success, it returns a SETOF RECORD.

The second milestone, tagged with version 1.0, takes a set of parameters for
connecting to a remote data source.  It queries the data source, creates a new
schema for it, and creates VIEWs, shadow TABLEs, TYPEs and accessor FUNCTIONs
for each TABLE and VIEW it finds by creating VIEWs and shadow TABLEs for each
TABLE.

The third milestone, tagged with version 2.0, is a major refactoring of the
old code.  It takes advantage of memory improvements to PL/Perl that come with
PostgreSQL 8.1: spi_query() and spi_fetchrow() to avoid fetching the entire
row set into memory, and return_next() to return rows as they arrive.  The new
release has removed remove the eval()s from perl code, replacing them with
YAML.

The fourth milestone, still in design phase, may handle JOINs with remote data
sources through some kind of predicate manipulation.

