[CDBI] Primary key declarations on non-primary key columns fails poorly

Derek Basch <dbasch-/[email protected]>
Newsgroups gmane.comp.lang.perl.modules.class-dbi
Message-ID <[email protected]>
Hello All,

I spend several hours tracking down this error and I thought I would submit it to this list before
submitting a feature request to CPAN.

For this example I am using Mysql v5.0 and Class::DBI v3.0.15 

If you declare a column as a primary key with Class::DBI like this:

Music::CD->columns(Primary => qw/pk1 pk2/);

and the column is not declared as a primary key in the database schema then you will get this
rather unhelpful error:

Can't insert new Database::Table: Can't get last insert id at /usr/local/lib/foo.pm line 180

As soon as you declare the column as primary in the database schema the error disappears.

It seems like Class::DBI should do an idiot check (yes, I am definitely the idiot on this one) to
ensure that the column really is a primary key column in the database schema. 

The primary_key_info method of the DBI database handle object should return that information. I am
not sure where this would best fit in the Class::DBI package but my guess would be in the
add_group method of the Class::DBI::ColumnGrouper module.

Anyways, let me know what you think and if I should submit this as a feature request.

Thanks for the help,
Derek Basch  

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.