Hi Tim,
the attached patch adds 'Carp::' to all unqualified
calls to carp() and croak().
You'll get the error message above with something like
perl -MDBI -e 'DBI->connect()->primary_key($c,$s,$t)'
Steffen
*** DBI.orig Fri Aug 22 23:25:40 2003
--- DBI.pm Mon Nov 03 16:14:28 2003
***************
*** 155,161 ****
my $Revision = substr(q$Revision: 11.36 $, 10);
! use Carp;
use DynaLoader ();
use Exporter ();
--- 155,161 ----
my $Revision = substr(q$Revision: 11.36 $, 10);
! use Carp();
use DynaLoader ();
use Exporter ();
***************
*** 726,732 ****
# catch people on case in-sensitive systems using the wrong case
$advice = "\nPerhaps the capitalisation of DBD '$driver' isn't right."
if $@ =~ /locate object method/;
! croak("$driver_class initialisation failed: [EMAIL PROTECTED]");
}
$DBI::installed_drh{$driver} = $drh;
--- 726,732 ----
# catch people on case in-sensitive systems using the wrong case
$advice = "\nPerhaps the capitalisation of DBD '$driver' isn't right."
if $@ =~ /locate object method/;
! Carp::croak("$driver_class initialisation failed: [EMAIL PROTECTED]");
}
$DBI::installed_drh{$driver} = $drh;
***************
*** 990,996 ****
sub connect_test_perf {
my($class, $dsn,$dbuser,$dbpass, $attr) = @_;
! croak("connect_test_perf needs hash ref as fourth arg") unless ref $attr;
# these are non standard attributes just for this special method
my $loops ||= $attr->{dbi_loops} || 5;
my $par ||= $attr->{dbi_par} || 1; # parallelism
--- 990,996 ----
sub connect_test_perf {
my($class, $dsn,$dbuser,$dbpass, $attr) = @_;
! Carp::croak("connect_test_perf needs hash ref as fourth arg") unless ref $attr;
# these are non standard attributes just for this special method
my $loops ||= $attr->{dbi_loops} || 5;
my $par ||= $attr->{dbi_par} || 1; # parallelism
***************
*** 1139,1145 ****
{ package # hide from PAUSE
DBD::Switch::dr;
DBI->setup_driver('DBD::Switch'); # sets up @ISA
- require Carp;
$DBD::Switch::dr::imp_data_size = 0;
$DBD::Switch::dr::imp_data_size = 0; # avoid typo warning
--- 1139,1144 ----
***************
*** 1212,1225 ****
# to install new methods into the DBI dispatcher
# DBD::Foo::db->install_method("foo_mumble", { usage => [...], options =>
'...' });
my ($class, $method, $attr) = @_;
! croak("Class '$class' must begin with DBD:: and end with ::db or ::st")
unless $class =~ /^DBD::(\w+)::(dr|db|st)$/;
my ($driver, $subtype) = ($1, $2);
! croak("invalid method name '$method'")
unless $method =~ m/^([a-z]+_)\w+$/;
my $prefix = $1;
my $reg_info = $dbd_prefix_registry->{$prefix};
! croak("method name prefix '$prefix' is not registered") unless $reg_info;
my %attr = %{$attr||{}}; # copy so we can edit
# XXX reformat $attr as needed for _install_method
my ($caller_pkg, $filename, $line) = caller;
--- 1211,1224 ----
# to install new methods into the DBI dispatcher
# DBD::Foo::db->install_method("foo_mumble", { usage => [...], options =>
'...' });
my ($class, $method, $attr) = @_;
! Carp::croak("Class '$class' must begin with DBD:: and end with ::db or ::st")
unless $class =~ /^DBD::(\w+)::(dr|db|st)$/;
my ($driver, $subtype) = ($1, $2);
! Carp::croak("invalid method name '$method'")
unless $method =~ m/^([a-z]+_)\w+$/;
my $prefix = $1;
my $reg_info = $dbd_prefix_registry->{$prefix};
! Carp::croak("method name prefix '$prefix' is not registered") unless $reg_info;
my %attr = %{$attr||{}}; # copy so we can edit
# XXX reformat $attr as needed for _install_method
my ($caller_pkg, $filename, $line) = caller;
***************
*** 1238,1249 ****
my ($drh, $user, $pass, $attr) = @_;
unless (defined $user) {
$user = $ENV{DBI_USER};
! carp("DBI connect: user not defined and DBI_USER env var not set")
if 0 && !defined $user && $drh->{Warn}; # XXX enable later
}
unless (defined $pass) {
$pass = $ENV{DBI_PASS};
! carp("DBI connect: password not defined and DBI_PASS env var not set")
if 0 && !defined $pass && $drh->{Warn}; # XXX enable later
}
return ($user, $pass);
--- 1237,1248 ----
my ($drh, $user, $pass, $attr) = @_;
unless (defined $user) {
$user = $ENV{DBI_USER};
! Carp::carp("DBI connect: user not defined and DBI_USER env var not set")
if 0 && !defined $user && $drh->{Warn}; # XXX enable later
}
unless (defined $pass) {
$pass = $ENV{DBI_PASS};
! Carp::carp("DBI connect: password not defined and DBI_PASS env var not
set")
if 0 && !defined $pass && $drh->{Warn}; # XXX enable later
}
return ($user, $pass);
***************
*** 1493,1499 ****
my $sth = $dbh->primary_key_info(@args) or return;
my ($row, @col);
push @col, $row->[3] while ($row = $sth->fetch);
! croak("primary_key method not called in list context")
unless wantarray; # leave us some elbow room
return @col;
}
--- 1492,1498 ----
my $sth = $dbh->primary_key_info(@args) or return;
my ($row, @col);
push @col, $row->[3] while ($row = $sth->fetch);
! Carp::croak("primary_key method not called in list context")
unless wantarray; # leave us some elbow room
return @col;
}