Fix uninitializied warnings in ::Storage::Sybase::ASE, shuffle logic a bit
Peter Rabbitson [Thu, 24 Nov 2011 13:45:32 +0000 (14:45 +0100)]
Changes
lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm

diff --git a/Changes b/Changes
index 935f28e..6e74dfe 100644 (file)
--- a/Changes
+++ b/Changes
@@ -9,6 +9,7 @@ Revision history for DBIx::Class
         - Fix incorrect storage behavior when first call on a fresh schema
           is with_deferred_fk_checks
         - Fix incorrect dependency on Test::Simple/Builder (RT#72282)
+        - Fix uninitialized warning in ::Storage::Sybase::ASE
 
     * Misc
         - No longer depend on Variable::Magic now that a pure-perl
index 94239c2..352386e 100644 (file)
@@ -263,8 +263,17 @@ sub _prep_for_execute {
       keys %$columns_info
   ;
 
-  if (($op eq 'insert' && $bound_identity_col) ||
-      ($op eq 'update' && exists $args->[0]{$identity_col})) {
+  if (
+    ($bound_identity_col and $op eq 'insert')
+      or
+    (
+      $op eq 'update'
+        and
+      defined $identity_col
+        and
+      exists $args->[0]{$identity_col}
+    )
+  ) {
     $sql = join ("\n",
       $self->_set_table_identity_sql($op => $table, 'on'),
       $sql,
@@ -272,8 +281,15 @@ sub _prep_for_execute {
     );
   }
 
-  if ($op eq 'insert' && (not $bound_identity_col) && $identity_col &&
-      (not $self->{insert_bulk})) {
+  if (
+    (not $bound_identity_col)
+      and
+    $identity_col
+      and
+    (not $self->{insert_bulk})
+      and
+    $op eq 'insert'
+  ) {
     $sql =
       "$sql\n" .
       $self->_fetch_identity_sql($ident, $identity_col);