Skip Menu |
 

This queue is for tickets about the Tie-DBI CPAN distribution.

Report information
The Basics
Id: 3695
Status: resolved
Priority: 0/
Queue: Tie-DBI

People
Owner: TODDR [...] cpan.org
Requestors: rurban [...] x-ray.at
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.91
Fixed in: (no value)

Attachments
Tie-DBI-0.91-cygwin-t.patch



Subject: cygwin test patch + SQLite support
Download (untitled) / with headers
text/plain 301b
Attached is a patch to fix a socket issue on cygwin with mysql. cygwin needs 127.0.0.1 as HOST in the dsn, the default localhost is wrong. An optional HOST=localhost may be added to make test Also added SQLite to the supported drivers. It runs out of the box, e.g. with: make test DRIVER=SQLite
--- Tie-DBI-0.91/t/DBI.t~ 2000-03-23 03:49:20.000000000 +0100 +++ Tie-DBI-0.91/t/DBI.t 2003-09-02 12:00:41.000000000 +0200 @@ -12,6 +12,7 @@ use constant USER => $ENV{USER}; use constant PASS => $ENV{PASS}; use constant DBNAME => $ENV{DB} || 'test'; +use constant HOST => $ENV{HOST} || ($^O eq 'cygwin') ? '127.0.0.1' : 'localhost'; BEGIN { $| = 1; print "1..32\n"; } END {print "not ok 1\n" unless $loaded;} @@ -26,7 +27,7 @@ local($^W)=0; # kill uninitialized variable warning # I like mysql best, followed by Oracle and Sybase my ($count) = 0; - my (%DRIVERS) = map { ($_,$count++) } qw(Informix Pg Ingres mSQL Sybase Oracle mysql); # ExampleP doesn't work; + my (%DRIVERS) = map { ($_,$count++) } qw(Informix Pg Ingres mSQL Sybase Oracle mysql SQLite); # ExampleP doesn't work; ($DRIVER) = sort { $DRIVERS{$b}<=>$DRIVERS{$a} } DBI->available_drivers(1); } @@ -93,7 +94,7 @@ sub initialize_database { local($^W) = 0; - my $dsn = "dbi:$DRIVER:${\DBNAME}"; + my $dsn = "dbi:$DRIVER:${\DBNAME}:${\HOST}"; my $dbh = DBI->connect($dsn,USER,PASS,{Warn=>1,PrintError=>1,ChopBlanks=>1}) || return undef; $dbh->do("DROP TABLE testTie"); return $dbh if $DRIVER eq 'ExampleP'; --- Tie-DBI-0.91/t/RDBM.t~ 2000-03-23 03:49:20.000000000 +0100 +++ Tie-DBI-0.91/t/RDBM.t 2003-09-02 12:01:30.000000000 +0200 @@ -12,6 +12,7 @@ use constant USER => $ENV{USER}; use constant PASS => $ENV{PASS}; use constant DBNAME => $ENV{DB} || 'test'; +use constant HOST => $ENV{HOST} || ($^O eq 'cygwin') ? '127.0.0.1' : 'localhost'; BEGIN { $| = 1; print "1..20\n"; } END {print "not ok 1\n" unless $loaded;} @@ -32,7 +33,7 @@ local($^W)=0; # kill uninitialized variable warning # Test using the mysql, sybase, oracle and mSQL databases respectively my ($count) = 0; - my (%DRIVERS) = map { ($_,$count++) } qw(Informix Pg Ingres mSQL Sybase Oracle mysql); # ExampleP doesn't work + my (%DRIVERS) = map { ($_,$count++) } qw(Informix Pg Ingres mSQL Sybase Oracle mysql SQLite); # ExampleP doesn't work ($DRIVER) = sort { $DRIVERS{$b}<=>$DRIVERS{$a} } DBI->available_drivers(1); } @@ -42,7 +43,7 @@ die "Found no DBD driver to use.\n"; } -my($dsn) = "dbi:$DRIVER:${\DBNAME}"; +my $dsn = "dbi:$DRIVER:${\DBNAME}:${\HOST}"; print "ok 1\n"; test 2,tie %h,Tie::RDBM,$dsn,{create=>1,drop=>1,table=>'PData','warn'=>0,user=>USER,password=>PASS}; %h=(); --- Tie-DBI-0.91/README~ 2000-03-23 03:49:17.000000000 +0100 +++ Tie-DBI-0.91/README 2003-09-02 12:00:27.000000000 +0200 @@ -45,9 +45,9 @@ If you need to specify a different database, or need to provide a username and password to log in, you can provide these values as DB, -USER and PASS, respectively, as in: +USER, PASS and HOST, respectively, as in: - make test DRIVER=Oracle DB=DEMO USER=fred PASS=xyzzy + make test DRIVER=Oracle DB=DEMO USER=fred PASS=xyzzy HOST=localhost And some drivers, such as Pg, want funny database names, as in: @@ -77,6 +77,7 @@ 7) DBD::Sybase (partial, croaks on each()) 8) DBD::Solid 9) DBD::ODBC (on mysql ODBC driver) + 10) DBD::SQLite Microsoft SQL server works partially with Tie::DBI (everything but "each") and not at all with Tie::RDBM. This is because SQL server
Thanks applied and uploaded to PAUSE


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.