Subject: | DBD::Pg in 3.8.0 changed column_info behaviour, and this broke Rose::DB::Object::Metadata::Auto |
In 3.8.0 DBD::Pg changed behaviour of column_info:
- Return the current database name as TABLE_CAT in info methods
https://github.com/bucardo/dbdpg/blob/master/Changes
This breaks Rose::DB::Object::Metadata::Auto
in auto_generate_columns it calls column_info with $catalog == '' (this is expected for postgres) (line 139 in current stable version) and then compares it with the result $col_info->{'TABLE_CAT'} (line 156). In DBD::Pg it is no longer empty, check fails, and we get error like "no column info found for catalog '' schema 'public' table 'my_table'"
Setting catalog in register_db does not help, it starts to fail on fetching primary key info "no primary key info found for catalog '' schema 'public' table 'my_tables'"
I think it is up to DBD::Pg developer to return previous behaviour. But it they refuse it, or make a big delay, I think this should be worked around in Rose::DB::Object somehow.
I filed this bug to DBD::Pg developers
https://rt.cpan.org/Ticket/Display.html?id=129583
please follow it