Fold column_info() into columns_info()
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Sybase / ASE.pm
index 017709c..5282b7f 100644 (file)
@@ -247,7 +247,9 @@ sub connect_call_blob_setup {
 sub _is_lob_column {
   my ($self, $source, $column) = @_;
 
-  return $self->_is_lob_type($source->column_info($column)->{data_type});
+  return $self->_is_lob_type(
+    $source->columns_info([$column])->{$column}{data_type}
+  );
 }
 
 sub _prep_for_execute {
@@ -357,15 +359,28 @@ sub insert {
   # try to insert explicit 'DEFAULT's instead (except for identity, timestamp
   # and computed columns)
   if (not %$to_insert) {
+
+    my $ci;
+    # same order as add_columns
     for my $col ($source->columns) {
       next if $col eq $identity_col;
 
-      my $info = $source->column_info($col);
-
-      next if ref $info->{default_value} eq 'SCALAR'
-        || (exists $info->{data_type} && (not defined $info->{data_type}));
-
-      next if $info->{data_type} && $info->{data_type} =~ /^timestamp\z/i;
+      my $info = ( $ci ||= $source->columns_info )->{$col};
+
+      next if (
+        ref $info->{default_value} eq 'SCALAR'
+          or
+        (
+          exists $info->{data_type}
+            and
+          ! defined $info->{data_type}
+        )
+          or
+        (
+          ( $info->{data_type} || '' )
+            =~ /^timestamp\z/i
+        )
+      );
 
       $to_insert->{$col} = \'DEFAULT';
     }