- Both the ::ODBC and ::ADO dispatchers now warn if a rdbms-specific
driver is not found for this connection before falling back to
plain ::Storage::DBI
+ - ::Storage::DBI::sth was mistakenly marked/documented as public,
+ privatize and warn on deprecated use
* Fixes
- Fix ::Storage::DBI::* MRO problems on 5.8.x perls
sub {
my $sql = $sql;
my $class = shift;
- return $class->storage->sth($class->transform_sql($sql, @_));
+ return $class->storage->_sth($class->transform_sql($sql, @_));
};
if ($sql =~ /select/i) {
my $search_name = "search_${name}";
use overload ();
use namespace::clean;
-
# default cursor class, overridable in connect_info attributes
__PACKAGE__->cursor_class('DBIx::Class::Storage::DBI::Cursor');
# This is basically a blend of dbh_do above and DBIx::Class::Storage::txn_do.
# It also informs dbh_do to bypass itself while under the direction of txn_do,
-# via $self->{_in_dbh_do} (this saves some redundant eval and errorcheck, etc)
+# via $self->{_in_dbh_do} (this saves some redundant eval and errorcheck, etc)
sub txn_do {
my $self = shift;
my $coderef = shift;
$self->_query_start( $sql, @$bind );
- my $sth = $self->sth($sql,$op);
+ my $sth = $self->_sth($sql,$op);
my $placeholder_index = 1;
my $guard = $self->txn_scope_guard;
$self->_query_start( $sql, @$bind ? [ dummy => '__BULK_INSERT__' ] : () );
- my $sth = $self->sth($sql);
+ my $sth = $self->_sth($sql);
my $rv = do {
if (@$bind) {
#@bind = map { ref $_ ? ''.$_ : $_ } @bind; # stringify args
}
sub sth {
+ carp_unique 'sth was mistakenly marked/documented as public, stop calling it (will be removed before DBIC v0.09)';
+ shift->_sth(@_);
+}
+
+sub _sth {
my ($self, $sql) = @_;
$self->dbh_do('_dbh_sth', $sql); # retry over disconnects
}
txn_commit
txn_rollback
txn_scope_guard
- sth
deploy
with_deferred_fk_checks
dbh_do
_resolve_aliastypes_from_select_args
_execute
_do_query
+ _sth
_dbh_sth
_dbh_execute
/],
_is_lob_type
_is_binary_lob_type
_is_text_lob_type
+
+ sth
/,(
# the capability framework
# not sure if CMOP->initialize does evil things to DBIC::S::DBI, fix if a problem
# Set up the "usual" sqlite for DBICTest
my $schema = DBICTest->init_schema;
-my $sth_one = $schema->storage->sth('SELECT 42');
-my $sth_two = $schema->storage->sth('SELECT 42');
+my $sth_one = $schema->storage->_sth('SELECT 42');
+my $sth_two = $schema->storage->_sth('SELECT 42');
$schema->storage->disable_sth_caching(1);
-my $sth_three = $schema->storage->sth('SELECT 42');
+my $sth_three = $schema->storage->_sth('SELECT 42');
ok($sth_one == $sth_two, "statement caching works");
ok($sth_two != $sth_three, "disabling statement caching works");