_sqlt_minimum_version
_sql_maker_opts
_conn_pid
- _conn_tid
_dbh_autocommit
_native_data_type
_get_dbh
_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
get_dbms_capability
set_dbms_capability
-
- sql_limit_dialect
-
_dbh_details
- _use_insert_returning
- _supports_insert_returning
-
- _use_placeholders
- _supports_placeholders
- _determine_supports_placeholders
-
- _use_typeless_placeholders
- _supports_typeless_placeholders
- _determine_supports_typeless_placeholders
+ sql_limit_dialect
_inner_join_to_node
+ _group_over_selection
+ _prefetch_autovalues
+ _extract_order_criteria
+ _max_column_bytesize
+ _is_lob_type
+);
+
+# 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) {
around connect_info => sub {
my ($next, $self, $info, @extra) = @_;
- my $wantarray = wantarray;
-
my $merge = Hash::Merge->new('LEFT_PRECEDENT');
my %opts;
$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/}) {
$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.
# link pool back to master
$self->pool->master($master);
- $wantarray ? @res : $res;
+ wantarray ? @res : $res[0];
};
=head1 METHODS
$self->read_handler($current);
};
- return $want_array ? @result : $result[0];
+ return wantarray ? @result : $result[0];
}
=head2 set_reliable_storage
foreach my $source ($self->all_storages) {
$source->limit_dialect(@_);
}
- return $self->master->quote_char;
+ return $self->master->limit_dialect;
}
=head2 quote_char