[svn:dbi] r14354 - dbi/trunk/lib/DBD

[email protected] Sun, 29 Aug 2010 03:27:10 -0700 (PDT)
Newsgroups perl.dbi.changes
Message-ID <[email protected]>
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