Reduce amount of calls to $rsrc->columns_info where possible
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / SQLAnywhere.pm
index 542dd56..b830921 100644 (file)
@@ -6,7 +6,6 @@ use base qw/DBIx::Class::Storage::DBI::UniqueIdentifier/;
 use mro 'c3';
 use List::Util 'first';
 use Try::Tiny;
-use DBIx::Class::Storage::DBI::SQLAnywhere::Cursor ();
 use namespace::clean;
 
 __PACKAGE__->mk_group_accessors(simple => qw/_identity/);
@@ -46,16 +45,17 @@ sub last_insert_id { shift->_identity }
 
 sub _prefetch_autovalues {
   my $self = shift;
-  my ($source, $to_insert) = @_;
+  my ($source, $colinfo, $to_insert) = @_;
 
   my $values = $self->next::method(@_);
 
-  my $colinfo = $source->columns_info;
-
   my $identity_col =
     first { $colinfo->{$_}{is_auto_increment} } keys %$colinfo;
 
 # user might have an identity PK without is_auto_increment
+#
+# FIXME we probably should not have supported the above, see what
+# does it take to move away from it
   if (not $identity_col) {
     foreach my $pk_col ($source->primary_columns) {
       if (
@@ -182,19 +182,19 @@ sub connect_call_datetime_setup {
   );
 }
 
-sub _svp_begin {
+sub _exec_svp_begin {
     my ($self, $name) = @_;
 
-    $self->_get_dbh->do("SAVEPOINT $name");
+    $self->_dbh->do("SAVEPOINT $name");
 }
 
 # can't release savepoints that have been rolled back
-sub _svp_release { 1 }
+sub _exec_svp_release { 1 }
 
-sub _svp_rollback {
+sub _exec_svp_rollback {
     my ($self, $name) = @_;
 
-    $self->_get_dbh->do("ROLLBACK TO SAVEPOINT $name")
+    $self->_dbh->do("ROLLBACK TO SAVEPOINT $name")
 }
 
 1;