Author: REHSACK
Date: Sun Aug 29 03:27:10 2010
New Revision: 14354
Modified:
dbi/trunk/lib/DBD/File.pm
Log:
Do not inject driver methods without a prefix
Modified: dbi/trunk/lib/DBD/File.pm
==============================================================================
--- dbi/trunk/lib/DBD/File.pm (original)
+++ dbi/trunk/lib/DBD/File.pm Sun Aug 29 03:27:10 2010
@@ -73,19 +73,21 @@
$drh->{$class} = $class->SUPER::driver ($attr);
my $prefix = DBI->driver_prefix ($class);
- my $dbclass = $class . "::db";
- while (my ($accessor, $funcname) = each %accessors) {
- my $method = $prefix . $accessor;
- $dbclass->can ($method) and next;
- my $inject = sprintf <<'EOI', $dbclass, $method, $dbclass, $funcname;
+ if ($prefix) {
+ my $dbclass = $class . "::db";
+ while (my ($accessor, $funcname) = each %accessors) {
+ my $method = $prefix . $accessor;
+ $dbclass->can ($method) and next;
+ my $inject = sprintf <<'EOI', $dbclass, $method, $dbclass,
$funcname;
sub %s::%s
{
my $func = %s->can (q{%s});
goto &$func;
}
EOI
- eval $inject;
- $dbclass->install_method ($method);
+ eval $inject;
+ $dbclass->install_method ($method);
+ }
}
# XXX inject DBD::XXX::Statement unless exists