HELP: Scarey pl/pgsql problem - Mailing list pgsql-sql

From Justin Clift
Subject HELP: Scarey pl/pgsql problem
Date
Msg-id 3A78CF0F.AD0F7A6F@bigpond.net.au
Whole thread Raw
In response to Re: pl/pgsql Limits  (Jan Wieck <janwieck@Yahoo.com>)
Responses Re: HELP: Scarey pl/pgsql problem  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
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


pgsql-sql by date:

Previous
From: Ian Harding
Date:
Subject: Re: Getting Results From Trigger
Next
From: "Sveinung Haslestad"
Date:
Subject: Array parameter to plpgsql-functions