Hi all,
I'm having trouble with what MAY BE a bug in PL/PGSQL for PG 7.0.3 on
Linux (Mandrake Linux 7.2).
It appears pl/pgsql is munging values. When I pass it a 'time' value,
the value is altered without my code touching it. This is evidenced by
the stripped down function below :
CREATE FUNCTION which_block(time)
RETURNS time
AS 'DECLARE
/* Given a time, this function works out the name of the correct field
in the reservations table for it
* Written by : Justin Clift
* Date : 1st February 2001
* Version : 1.00
*/
hours char(3);
minutes char(2);
result char(5);
tempres char(5);
curnow datetime;
BEGIN
RETURN $1;
END;'
LANGUAGE 'plpgsql';
foobar=# select which_block(time '12:40:00');
which_block
-------------
12:39:00
(1 row)
foobar=#
Having passed it the time value of '12:40:00', I am immediately
returning that value and it is no longer '12:40:00'.
Being over 1 month into using PostgreSQL 7.0.3 for a particular project,
this is scaring me as I'm now doubting the reliability of things.
Regards and best wishes,
Justin Clift
Database Administrator