X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FSQLAnywhere.pm;h=df301d2bb574c509564d348b2217340decbc280f;hb=52416317a26986602098ffe2ea6aa64a05925b6f;hp=e2efa1338a3762bfa03d1d749766aec52f7eb528;hpb=d5dedbd62928f65a9071b4d9b6d56c6b663a073b;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm b/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm index e2efa13..df301d2 100644 --- a/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm +++ b/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm @@ -41,15 +41,21 @@ sub insert { my $self = shift; my ($source, $to_insert) = @_; + my $colinfo = $source->columns_info; + my $identity_col = - first { $source->column_info($_)->{is_auto_increment} } $source->columns; + first { $_->{is_auto_increment} } values %$colinfo; # user might have an identity PK without is_auto_increment if (not $identity_col) { foreach my $pk_col ($source->primary_columns) { - if (not exists $to_insert->{$pk_col} && - $source->column_info($pk_col)->{data_type} !~ /^uniqueidentifier/i) - { + if ( + ! exists $to_insert->{$pk_col} + and + $colinfo->{$pk_col}{data_type} + and + $colinfo->{$pk_col}{data_type} !~ /^uniqueidentifier/i + ) { $identity_col = $pk_col; last; }