Attached is a patch against DBD::Pg 1.20 which
fixes the driver-specific function 'table_attributes'
for use with PostgreSQL 7.3 while maintaining
backwards compatibility with older PostgreSQL
versions.
To avoid voodoo with PostgreSQL version numbers
a check is made whether pg_relcheck exists and
the appropriate query (either 7.3 or pre 7.3)
executed. Tested with 7.3 and 7.1.3.
This is hopefully a one off problem requiring this
kind of check. I haven't had a chance to look at
every function in Pg.pm, but it seems this is the
only one "broken" by 7.3.
Comments, corrections etc. welcome!
Ian Barwick
[EMAIL PROTECTED]
619c619,627
< my ($constraint) = $dbh->selectrow_array("select rcsrc from pg_relcheck where rcname = '${table}_$col_name'");
---
> # Note: as of PostgreSQL 7.3 pg_relcheck has been replaced
> # by pg_constraint. To maintain compatibility, check whether
> # pg_relcheck exists and execute the appropriate query.
>
> my ($pre73) = $dbh->selectrow_array("SELECT 1 FROM pg_class WHERE relname='pg_relcheck'") || 0;
> my $con_query = $pre73
> ? "SELECT rcsrc FROM pg_relcheck WHERE rcname = '${table}_$col_name'"
> : "SELECT consrc FROM pg_catalog.pg_constraint WHERE contype = 'c' AND conname = '${table}_$col_name'";
> my ($constraint) = $dbh->selectrow_array($con_query);