support INSERT ... RETURNING in Oracle 8i and later
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated.pm
index 967d0e0..04b94f2 100644 (file)
@@ -345,7 +345,6 @@ has 'write_handler' => (
     _sqlt_minimum_version
     _sql_maker_opts
     _conn_pid
-    _conn_tid
     _dbh_autocommit
     _native_data_type
     _get_dbh
@@ -356,21 +355,17 @@ has 'write_handler' => (
     _resolve_column_info
     _prune_unused_joins
     _strip_cond_qualifiers
-    _extract_order_columns
     _resolve_aliastypes_from_select_args
     _execute
     _do_query
     _dbh_sth
     _dbh_execute
-    _prefetch_insert_auto_nextvals
   /],
 );
 
 my @unimplemented = qw(
   _arm_global_destructor
-  _preserve_foreign_dbh
   _verify_pid
-  _verify_tid
 
   get_use_dbms_capability
   set_use_dbms_capability
@@ -382,6 +377,9 @@ my @unimplemented = qw(
 
   _inner_join_to_node
   _group_over_selection
+  _prefetch_autovalues
+  _extract_order_criteria
+  _max_column_bytesize
 );
 
 # the capability framework
@@ -411,8 +409,6 @@ C<pool_type>, C<pool_args>, C<balancer_type> and C<balancer_args>.
 around connect_info => sub {
   my ($next, $self, $info, @extra) = @_;
 
-  my $wantarray = wantarray;
-
   my $merge = Hash::Merge->new('LEFT_PRECEDENT');
 
   my %opts;
@@ -430,8 +426,9 @@ around connect_info => sub {
       $merge->merge((delete $opts{pool_args} || {}), $self->pool_args)
     );
 
-    $self->pool($self->_build_pool)
-      if $self->pool;
+    ## Since we possibly changed the pool_args, we need to clear the current
+    ## pool object so that next time it is used it will be rebuilt.
+    $self->clear_pool;
   }
 
   if (@opts{qw/balancer_type balancer_args/}) {
@@ -448,11 +445,11 @@ around connect_info => sub {
 
   $self->_master_connect_info_opts(\%opts);
 
-  my (@res, $res);
-  if ($wantarray) {
+  my @res;
+  if (wantarray) {
     @res = $self->$next($info, @extra);
   } else {
-    $res = $self->$next($info, @extra);
+    $res[0] = $self->$next($info, @extra);
   }
 
   # Make sure master is blessed into the correct class and apply role to it.
@@ -465,7 +462,7 @@ around connect_info => sub {
   # link pool back to master
   $self->pool->master($master);
 
-  $wantarray ? @res : $res;
+  wantarray ? @res : $res[0];
 };
 
 =head1 METHODS
@@ -680,7 +677,7 @@ sub execute_reliably {
     $self->read_handler($current);
   };
 
-  return $want_array ? @result : $result[0];
+  return wantarray ? @result : $result[0];
 }
 
 =head2 set_reliable_storage