fix and regression test for RT #62642
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated.pm
index 259fc1b..4477475 100644 (file)
@@ -314,7 +314,6 @@ has 'write_handler' => (
     svp_begin
     svp_release
     relname_to_table_alias
-    _straight_join_to_node
     _dbh_last_insert_id
     _fix_bind_params
     _default_dbi_connect_attributes
@@ -328,7 +327,6 @@ has 'write_handler' => (
     _dbh
     _select_args
     _dbh_execute_array
-    _sql_maker_args
     _sql_maker
     _query_start
     _sqlt_version_error
@@ -358,7 +356,7 @@ has 'write_handler' => (
     _resolve_column_info
     _prune_unused_joins
     _strip_cond_qualifiers
-    _parse_order_by
+    _extract_order_columns
     _resolve_aliastypes_from_select_args
     _execute
     _do_query
@@ -378,19 +376,19 @@ my @unimplemented = qw(
   set_use_dbms_capability
   get_dbms_capability
   set_dbms_capability
-
   _dbh_details
 
-  _use_insert_returning
-  _supports_insert_returning
+  sql_limit_dialect
 
-  _use_placeholders
-  _supports_placeholders
-  _determine_supports_placeholders
+  _inner_join_to_node
+  _group_over_selection
+);
 
-  _use_typeless_placeholders
-  _supports_typeless_placeholders
-  _determine_supports_typeless_placeholders
+# the capability framework
+# not sure if CMOP->initialize does evil things to DBIC::S::DBI, fix if a problem
+push @unimplemented, ( grep
+  { $_ =~ /^ _ (?: use | supports | determine_supports ) _ /x }
+  ( Class::MOP::Class->initialize('DBIx::Class::Storage::DBI')->get_all_method_names )
 );
 
 for my $method (@unimplemented) {
@@ -432,8 +430,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/}) {
@@ -752,7 +751,7 @@ sub limit_dialect {
   foreach my $source ($self->all_storages) {
     $source->limit_dialect(@_);
   }
-  return $self->master->quote_char;
+  return $self->master->limit_dialect;
 }
 
 =head2 quote_char