[Bast-commits] r7736 - in DBIx-Class/0.08/branches/sybase_bulkinsert_support: . lib/DBIx/Class lib/DBIx/Class/Storage lib/DBIx/Class/Storage/DBI

caelum at dev.catalyst.perl.org caelum at dev.catalyst.perl.org
Mon Sep 28 09:31:38 GMT 2009


Author: caelum
Date: 2009-09-28 09:31:38 +0000 (Mon, 28 Sep 2009)
New Revision: 7736

Modified:
   DBIx-Class/0.08/branches/sybase_bulkinsert_support/Changes
   DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/ResultSet.pm
   DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI.pm
   DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Replicated.pm
   DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Sybase.pm
Log:
minor changes

Modified: DBIx-Class/0.08/branches/sybase_bulkinsert_support/Changes
===================================================================
--- DBIx-Class/0.08/branches/sybase_bulkinsert_support/Changes	2009-09-28 08:50:22 UTC (rev 7735)
+++ DBIx-Class/0.08/branches/sybase_bulkinsert_support/Changes	2009-09-28 09:31:38 UTC (rev 7736)
@@ -1,18 +1,18 @@
 Revision history for DBIx::Class
 
-        - Sybase bulk API support for populate()
 
         - Complete Sybase RDBMS support including:
           - Support for TEXT/IMAGE columns
           - Support for the 'money' datatype
-        - Transaction savepoints support
-        - DateTime inflation support
-        - Support for bind variables when connecting to a newer Sybase with
-           OpenClient libraries
-        - Support for connections via FreeTDS with CASTs for bind variables
-           when needed
-        - Support for interpolated variables with proper quoting when
-           connecting to an older Sybase and/or via FreeTDS
+          - Transaction savepoints support
+          - DateTime inflation support
+          - Support for bind variables when connecting to a newer Sybase with
+             OpenClient libraries
+          - Support for connections via FreeTDS with CASTs for bind variables
+             when needed
+          - Support for interpolated variables with proper quoting when
+             connecting to an older Sybase and/or via FreeTDS
+          - bulk API support for populate()
 
 0.08112 2009-09-21 10:57:00 (UTC)
         - Remove the recommends from Makefile.PL, DBIx::Class is not

Modified: DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/ResultSet.pm
===================================================================
--- DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/ResultSet.pm	2009-09-28 08:50:22 UTC (rev 7735)
+++ DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/ResultSet.pm	2009-09-28 09:31:38 UTC (rev 7736)
@@ -2796,7 +2796,7 @@
       : (
           ( delete $attrs->{columns} )
             ||
-          $source->storage->_order_select_columns(
+          $source->storage->order_select_columns(
               $source,
               [ $source->columns ],
           )

Modified: DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Replicated.pm
===================================================================
--- DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Replicated.pm	2009-09-28 08:50:22 UTC (rev 7735)
+++ DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Replicated.pm	2009-09-28 09:31:38 UTC (rev 7736)
@@ -325,7 +325,7 @@
     _count_select
     _subq_count_select
     _subq_update_delete
-    _order_select_columns
+    order_select_columns
     svp_rollback
     svp_begin
     svp_release

Modified: DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Sybase.pm
===================================================================
--- DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Sybase.pm	2009-09-28 08:50:22 UTC (rev 7735)
+++ DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI/Sybase.pm	2009-09-28 09:31:38 UTC (rev 7736)
@@ -681,7 +681,7 @@
     }
   }
 
-  return keys %blob_cols ? \%blob_cols : undef;
+  return %blob_cols ? \%blob_cols : undef;
 }
 
 # same for insert_bulk
@@ -1088,6 +1088,33 @@
 When inserting IMAGE columns using this method, you'll need to use
 L</connect_call_blob_setup> as well.
 
+=head1 TODO
+
+=over
+
+=item *
+
+Transitions to AutoCommit=0 (starting a transaction) mode by exhausting
+any active cursors, using eager cursors.
+
+=item *
+
+Real limits and limited counts using stored procedures deployed on startup.
+
+=item *
+
+Adaptive Server Anywhere (ASA) support, with possible SQLA::Limit support.
+
+=item *
+
+Blob update with a LIKE query on a blob, without invalidating the WHERE condition.
+
+=item *
+
+bulk_insert using prepare_cached (see comments.)
+
+=back
+
 =head1 AUTHOR
 
 See L<DBIx::Class/CONTRIBUTORS>.

Modified: DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI.pm
===================================================================
--- DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI.pm	2009-09-28 08:50:22 UTC (rev 7735)
+++ DBIx-Class/0.08/branches/sybase_bulkinsert_support/lib/DBIx/Class/Storage/DBI.pm	2009-09-28 09:31:38 UTC (rev 7736)
@@ -1368,7 +1368,9 @@
     == @$cols;
 
   if ((not @bind) && (not $empty_bind)) {
-    croak 'Cannot insert_bulk without support for placeholders';
+    $self->throw_exception(
+      'Cannot insert_bulk without support for placeholders'
+    );
   }
 
   $self->_query_start( $sql, @bind );
@@ -1420,7 +1422,8 @@
 
   my $rv = eval { $sth->execute_array({ArrayTupleStatus => $tuple_status}) };
 
-  $guard->commit if $guard; # probably only needed for Sybase
+# only needed for Sybase, it requires a commit before the $sth->finish
+  $guard->commit if $guard;
 
   $sth->finish;
 
@@ -2050,15 +2053,23 @@
   return @pcols ? \@pcols : [ 1 ];
 }
 
-#
-# Returns an ordered list of column names before they are used
-# in a SELECT statement. By default simply returns the list
-# passed in.
-#
-# This may be overridden in a specific storage when there are
-# requirements such as moving BLOB columns to the end of the 
-# SELECT list.
-sub _order_select_columns {
+=head2 order_select_columns
+
+=over 4
+
+=item Arguments: $source, \@columns
+
+=back
+
+Returns an ordered list of column names to be used in a SELECT statement. By
+default simply returns the list that was passed in.
+
+This may be overridden in a specific storage when there are requirements such as
+moving BLOB columns to the end of the SELECT list.
+
+=cut
+
+sub order_select_columns {
   #my ($self, $source, $columns) = @_;
   return @{$_[2]};
 }




More information about the Bast-commits mailing list