Skip Menu |

This queue is for tickets about the DBD-Pg CPAN distribution.

Report information
The Basics
Id: 129583
Status: stalled
Priority: 0/
Queue: DBD-Pg

People
Owner: Nobody in particular
Requestors: NATARAJ [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 3.8.0
Fixed in: (no value)



Subject: In 3.8.0 column_info changed behaviour, and this broke Rose::DB::Object::Metadata::Auto
In 3.8.0 DBD::Pg starts to return the current database name as TABLE_CAT in info methods This broken existing code. Including Rose::DB. In Rose/DB/Object/Metadata/Auto.pm in function auto_generate_columns it column_info with $catalog == '' (this is natural for postgres). And then make check that values retuned by column_info is what was requested. This check includes $col_info->{'TABLE_CAT'} eq $catalog (See lines 139 and 156 of current Rose::DB::Object::Metadata::Auto) For older DBD::Pg versions everything worked well. $catalog was empty and $col_info->{'TABLE_CAT'} was empty, check passed. Now $col_info->{'TABLE_CAT'} has dbname in it and check fails. My suggestion is to revert this behaviour as fast as possible, so as few projects as possible was affected by this regression.
See also bug report for Rose::DB::Object https://rt.cpan.org/Ticket/Display.html?id=129584
This is quite unfortunate. We cannot roll back that behavior, but maybe we could make a backwards-compatible flag. I'd lean towards an ENV, but it could also be part of the DSN string. Thoughts?
Pinged the Rose::DB ticket