The following bug has been logged online:
Bug reference: 5191
Logged by: Clark Pearson
Email address: cloink_friggson@ntlworld.com
PostgreSQL version: 8.3.7
Operating system: Windows
Description: now() returns same value from Perl.
Details:
Hi,
I don't know if this is a core database issue, or a Perl DBD::Pg one;
however the same thing occurs using the 'pure perl' DBD::PgPP as well, so
the evidence points to the db. Note that I do not observe this behaviour if
connected via psql from a Windows DOS terminal.
If I 'SELECT now()' repeatedly from a perl script connected to the database
via DBD::Pg, the returned value does not get updated to the new system
time.
I have tried a number of different tricks, but the only way I have managed
to make it return a value not the same as the first time is by
dis-/reconnecting.
Here is a simple perl script to test with
#!perl
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect( 'DBI:Pg:dbname=tc;host=localhost;port=5432',
'user', 'pass',
{ RaiseError => 1
, PrintError => 1
, AutoCommit => 0
}
);
my $qry = q(
select current_timestamp
);
$qry = $dbh->prepare($qry);
my $tmp = $dbh->selectrow_array(
'select current_timestamp');
warn $tmp;
sleep 2;
my $tm2 = $dbh->selectrow_array('SELECT 1');
warn $tm2;
my $tm3 = $dbh->selectrow_array('SELECT now()');
warn $tm3;
$dbh->disconnect();
__END__