Package: libclass-dbi-perl
Version: 0.96-1
Severity: normal
Tags: patch
If a value is not specified for a PK column when creating a Class::DBI
object, Class::DBI attempts to insert a row with NULL as the "value" for
this column. This works with MySQL auto-id columns, since MySQL ignores
the bogus NULL, but does not work with PostgreSQL's auto-id ("serial")
columns; the NULL overrides the default.
This appears to be an unintended result of the following test in the
_init subroutine:
if (@primary_columns == grep defined, @[EMAIL PROTECTED]) {
If I'm not mistaken, this assigns undef/NULL to each missing PK column
and then checks whether each PK column has a value matching its name! I
believe this is actually meant to check that each PK column has been
given a value, which I think should be written:
if (@primary_columns == grep exists $data->{$_}, @primary_columns) {
Secondly the _auto_increment_value subroutine doesn't work with
PostgreSQL. The appropriate expression is:
$dbh->last_insert_id(undef, undef, $self->table, undef)
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.16-1-k7
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Versions of packages libclass-dbi-perl depends on:
ii libclass-accessor-perl 0.22-1 Automated accessor generator
ii libclass-data-inheritable-per 0.04-1 Inheritable, overridable class dat
ii libclass-trigger-perl 0.10-1 Mix-in to add / call inheritable t
ii libima-dbi-perl 0.34-1 Database connection caching and or
ii libuniversal-moniker-perl 0.08-2 Nicer names for your Perl modules/
ii perl 5.8.8-4 Larry Wall's Practical Extraction
-- no debconf information
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]