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.