Skip Menu |

This queue is for tickets about the Alzabo CPAN distribution.

Maintainer(s)' notes

Not really maintained any more. Interested in taking it over? Email the author.

Report information
The Basics
Id: 6514
Status: resolved
Priority: 0/
Queue: Alzabo

People
Owner: Nobody in particular
Requestors: radek [...] karnet.pl
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: (no value)
Fixed in: 0.83



Subject: Alzabo::Create::Schema->reverse_engineer() doesn't work with PostgreSQL 7.4.2 (CHARACTER_DATA type)
It appears that Alzabo doesn't know anything about the CHARACTER_DATA type, returned by PostgreSQL 7.4.2: $ perl -MAlzabo::Create::Schema -wle 'Alzabo::Create::Schema->reverse_engineer(qw/name radek rdbms PostgreSQL/)' Invalid column type: CHARACTER_DATA Trace begun at /usr/share/perl5/vendor_perl/Alzabo/RDBMSRules/PostgreSQL.pm line 130 Alzabo::RDBMSRules::PostgreSQL::validate_column_type('Alzabo::RDBMSRules::PostgreSQL=HASH(0x8064d2c)', 'character_data', 'Alzabo::Create::Table=HASH(0x8613a14)') called at /usr/share/perl5/vendor_perl/Alzabo/Create/ColumnDefinition.pm line 44 Alzabo::Create::ColumnDefinition::_init(undef, 'owner', 'Alzabo::Create::Column=HASH(0x84b3d8c)', 'type', 'character_data') called at /usr/share/perl5/vendor_perl/Alzabo/Create/ColumnDefinition.pm line 26 Alzabo::Create::ColumnDefinition::new('Alzabo::Create::ColumnDefinition', 'owner', 'Alzabo::Create::Column=HASH(0x84b3d8c)', 'type', 'character_data') called at /usr/share/perl5/vendor_perl/Alzabo/Create/Column.pm line 69 Alzabo::Create::Column::_init(undef, 'table', 'Alzabo::Create::Table=HASH(0x8613a14)', 'length', -5, 'nullable', 1, 'name', 'feature_id', 'type', 'character_data') called at /usr/share/perl5/vendor_perl/Alzabo/Create/Column.pm line 26 Alzabo::Create::Column::new('Alzabo::Create::Column', 'table', 'Alzabo::Create::Table=HASH(0x8613a14)', 'length', -5, 'nullable', 1, 'name', 'feature_id', 'type', 'character_data') called at /usr/share/perl5/vendor_perl/Alzabo/Create/Table.pm line 117 Alzabo::Create::Table::make_column('Alzabo::Create::Table=HASH(0x8613a14)', 'name', 'feature_id', 'nullable', 1, 'length', -5, 'type', 'character_data') called at /usr/share/perl5/vendor_perl/Alzabo/RDBMSRules/PostgreSQL.pm line 863 Alzabo::RDBMSRules::PostgreSQL::reverse_engineer('Alzabo::RDBMSRules::PostgreSQL=HASH(0x8064d2c)', 'Alzabo::Create::Schema=HASH(0x804cdd0)') called at /usr/share/perl5/vendor_perl/Alzabo/Create/Schema.pm line 81 Alzabo::Create::Schema::reverse_engineer('Alzabo::Create::Schema', 'name', 'radek', 'rdbms', 'PostgreSQL') called at -e line 1 The database structure is: single table with single integer column: $ psql -U radek -c '\d' List of relations Schema | Name | Type | Owner --------+------+-------+------- public | foo | table | radek (1 row) $ psql -U radek -c '\d foo' Table "public.foo" Column | Type | Modifiers --------+---------+----------- bar | integer | Software used (everything from the PLD Linux Distribution): $ rpm -q postgresql perl-Alzabo perl-DBI perl-DBD-Pg postgresql-7.4.2-1 perl-Alzabo-0.82-1 perl-DBI-1.42-3 perl-DBD-Pg-1.32-1
[guest - Fri Jun 4 09:27:52 2004]: Show quoted text
> It appears that Alzabo doesn't know anything about the > CHARACTER_DATA type, returned by PostgreSQL 7.4.2: > > $ perl -MAlzabo::Create::Schema -wle 'Alzabo::Create::Schema-
> >reverse_engineer(qw/name radek rdbms PostgreSQL/)'
> Invalid column type: CHARACTER_DATA > > Trace begun at > /usr/share/perl5/vendor_perl/Alzabo/RDBMSRules/PostgreSQL.pm line > 130 >
Alzabo::RDBMSRules::PostgreSQL::validate_column_type('Alzabo::RDBMSRules::PostgreSQL=HASH(0x8064d2c)', Show quoted text
> 'character_data', 'Alzabo::Create::Table=HASH(0x8613a14)') called > at /usr/share/perl5/vendor_perl/Alzabo/Create/ColumnDefinition.pm > line 44 > Alzabo::Create::ColumnDefinition::_init(undef, 'owner', > 'Alzabo::Create::Column=HASH(0x84b3d8c)', 'type', 'character_data') > called at > /usr/share/perl5/vendor_perl/Alzabo/Create/ColumnDefinition.pm line > 26 > Alzabo::Create::ColumnDefinition::new('Alzabo::Create::ColumnDefinition', > 'owner', 'Alzabo::Create::Column=HASH(0x84b3d8c)', 'type', > 'character_data') called at > /usr/share/perl5/vendor_perl/Alzabo/Create/Column.pm line 69 > Alzabo::Create::Column::_init(undef, 'table', > 'Alzabo::Create::Table=HASH(0x8613a14)', 'length', -5, 'nullable', > 1, 'name', 'feature_id', 'type', 'character_data') called at > /usr/share/perl5/vendor_perl/Alzabo/Create/Column.pm line 26 > Alzabo::Create::Column::new('Alzabo::Create::Column', 'table', > 'Alzabo::Create::Table=HASH(0x8613a14)', 'length', -5, 'nullable', > 1, 'name', 'feature_id', 'type', 'character_data') called at > /usr/share/perl5/vendor_perl/Alzabo/Create/Table.pm line 117 >
Alzabo::Create::Table::make_column('Alzabo::Create::Table=HASH(0x8613a14)', Show quoted text
> 'name', 'feature_id', 'nullable', 1, 'length', -5, 'type', > 'character_data') called at > /usr/share/perl5/vendor_perl/Alzabo/RDBMSRules/PostgreSQL.pm line > 863 >
Alzabo::RDBMSRules::PostgreSQL::reverse_engineer('Alzabo::RDBMSRules::PostgreSQL=HASH(0x8064d2c)', Show quoted text
> 'Alzabo::Create::Schema=HASH(0x804cdd0)') called at > /usr/share/perl5/vendor_perl/Alzabo/Create/Schema.pm line 81 > Alzabo::Create::Schema::reverse_engineer('Alzabo::Create::Schema', > 'name', 'radek', 'rdbms', 'PostgreSQL') called at -e line 1 > > The database structure is: single table with single integer column: > > $ psql -U radek -c '\d' > List of relations > Schema | Name | Type | Owner > --------+------+-------+------- > public | foo | table | radek > (1 row) > > $ psql -U radek -c '\d foo' > Table "public.foo" > Column | Type | Modifiers > --------+---------+----------- > bar | integer |
This is weird, because there is no CHARACTER_DATA type column (is there even such a type at all?) Does this still happen with 0.83?
[DROLSKY - Thu Jun 24 01:23:56 2004]: Show quoted text
> This is weird, because there is no CHARACTER_DATA type column (is > there > even such a type at all?)
Looks like a kind of internal/meta type to me, but I don't know Postgres that well. Show quoted text
> Does this still happen with 0.83?
No, it works fine (at least that snippet of code).