From: Peter Rabbitson Date: Mon, 7 Sep 2009 14:26:59 +0000 (+0000) Subject: Whoops - last_insert_id allows for multiple autoinc columns - support it in pg X-Git-Tag: v0.08112~41 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=6ea2d01b1d47b05c7ad28636345530f949108f20;p=dbsrgits%2FDBIx-Class.git Whoops - last_insert_id allows for multiple autoinc columns - support it in pg --- diff --git a/lib/DBIx/Class/Storage/DBI/Pg.pm b/lib/DBIx/Class/Storage/DBI/Pg.pm index dd9e339..3d25b83 100644 --- a/lib/DBIx/Class/Storage/DBI/Pg.pm +++ b/lib/DBIx/Class/Storage/DBI/Pg.pm @@ -20,15 +20,22 @@ sub with_deferred_fk_checks { } sub last_insert_id { - my ($self,$source,$col) = @_; - my $seq = ( $source->column_info($col)->{sequence} ||= $self->dbh_do('_dbh_get_autoinc_seq', $source, $col) ) + my ($self,$source,@cols) = @_; + + my @values; + + for my $col (@cols) { + my $seq = ( $source->column_info($col)->{sequence} ||= $self->dbh_do('_dbh_get_autoinc_seq', $source, $col) ) or $self->throw_exception( "could not determine sequence for " . $source->name . ".$col, please consider adding a " . "schema-qualified sequence to its column info" ); - $self->_dbh_last_insert_id ($self->_dbh, $seq); + push @values, $self->_dbh_last_insert_id ($self->_dbh, $seq); + } + + return @values; } # there seems to be absolutely no reason to have this as a separate method,