X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FSybase%2FASE.pm;h=d2f5e2f843b1eb719af9aa97751c9999ab2db8ca;hb=e366f8071f0797f739114539858e59bd3aea3baa;hp=dbbee6f081ecdaf00163ae0d8ffe41e8ac9cca15;hpb=52416317a26986602098ffe2ea6aa64a05925b6f;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm b/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm index dbbee6f..d2f5e2f 100644 --- a/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm +++ b/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm @@ -260,9 +260,13 @@ sub _prep_for_execute { first { $bind_info->{$_}{is_auto_increment} } keys %$bind_info ; + + my $columns_info = blessed $ident && $ident->columns_info; + my $identity_col = - blessed $ident && - first { $_->{is_auto_increment} } values %{ $ident->columns_info } + $columns_info && + first { $columns_info->{$_}{is_auto_increment} } + keys %$columns_info ; if (($op eq 'insert' && $bound_identity_col) || @@ -350,8 +354,11 @@ sub insert { my $self = shift; my ($source, $to_insert) = @_; + my $columns_info = $source->columns_info; + my $identity_col = - (first { $_->{is_auto_increment} } values %{ $source->columns_info } ) + (first { $columns_info->{$_}{is_auto_increment} } + keys %$columns_info ) || ''; # check for empty insert @@ -435,8 +442,11 @@ sub update { my $table = $source->name; + my $columns_info = $source->columns_info; + my $identity_col = - first { $_->{is_auto_increment} } values %{ $source->columns_info }; + first { $columns_info->{$_}{is_auto_increment} } + keys %$columns_info; my $is_identity_update = $identity_col && defined $fields->{$identity_col}; @@ -485,8 +495,11 @@ sub insert_bulk { my $self = shift; my ($source, $cols, $data) = @_; + my $columns_info = $source->columns_info; + my $identity_col = - first { $_->{is_auto_increment} } values %{ $source->columns_info }; + first { $columns_info->{$_}{is_auto_increment} } + keys %$columns_info; my $is_identity_insert = (first { $_ eq $identity_col } @{$cols}) ? 1 : 0;