-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

> I agree that Class::DBI may be involved.  However, the module Class::DBI
> specifically is not installed.

There is no doubt that Class::DBI is intimately involved here. The error 
is coming from:

/usr/lib/perl5/site_perl/5.8.8/Class/DBI/Loader/Generic.pm

> In this file, the following method is called:
> (In this method the value of $table is '"access"'; and I do mean '(double
> quote)access(double quote)' (without the single quotes of course). The
> double quoting of the table name is where the problem stems from.)
> ---- Begin Method ----
> sub set_up_table {
>     my ( $class, $table, $opts ) = @_;
...
> SELECT a.attname, a.attnum
> FROM ${catalog}pg_class c, ${catalog}pg_attribute a
> WHERE c.relname = ?

Yep, that's the problem. Looks like DBI::Class is mixing and matching 
relation names. If they want to use the tablenames "raw" for use in 
system catalogs, they should probably be getting the table names 
themselves: I suspect they are getting them through DBI/DBD::Pg, which is 
properly quoting them. The quotes are for people doing things like

$SQL = "UPDATE $table SET foo=12 WHERE foo=24";

The only time the quotes will mess things up is when people do things like 
try to put those values directly into pg_class.

Alternatively, there are aready DBI methods to get the primary key 
for a table: see primary_key_info. This looks like a Class::DBI bug: 
they need to either get all the information themselves via the system 
catalogs, or rely on DBI (via DBD::Pg) to get it for them. The mixing 
and matching is causing the problems.

I'm not very familiar with Class::DBI, but I'd definitely check there 
first, and see if this has been reported on a mailing list or a bug 
report, or raise the issue on one or both yourself.

- --
Greg Sabino Mullane [EMAIL PROTECTED]
End Point Corporation
PGP Key: 0x14964AC8 200707311122
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iD8DBQFGr1PKvJuQZxSWSsgRAx0nAJ4h/OlaYMtXOF/G4Ys8lizHoNoR/gCbBj7R
px/gMXv6obk8Bgwph46+RfQ=
=meqs
-----END PGP SIGNATURE-----


Reply via email to