Skip site navigation (1) Skip section navigation (2)

patch fixing the old RETURN NEXT bug

From: "Sergey E(dot) Koposov" <math(at)sai(dot)msu(dot)ru>
To: pgsql-patches(at)postgresql(dot)org
Subject: patch fixing the old RETURN NEXT bug
Date: 2006-02-12 17:15:53
Message-ID: Pine.LNX.4.44.0602121958090.15708-200000@lnfm1.sai.msu.ru (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
Hello All,

I'm proposing the fix of this bug:
http://archives.postgresql.org/pgsql-hackers/2005-02/msg00498.php

The exact SQL code exposing the error:

----------

create table usno (ra real, dec real, bmag real, rmag real,ipix int8);
CREATE OR REPLACE FUNCTION xxx(refcursor) RETURNS refcursor AS '
DECLARE query varchar;
BEGIN
query = ''SELECT * FROM usno'';
OPEN $1 FOR EXECUTE query;
RETURN $1;
END;
' LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION yyy() RETURNS SETOF usno AS '
DECLARE rec record;
DECLARE cur refcursor;
BEGIN
cur=xxx(''curs_name'');
LOOP
        FETCH cur into rec;
        EXIT WHEN NOT FOUND;
        RETURN NEXT rec;
END LOOP;
RETURN;
END;
' LANGUAGE plpgsql;

insert into usno values(1,2,3,4);
select * from yyy();
alter table usno add column errbox box;
select * from yyy();
alter table usno drop column errbox;
select * from yyy();

-------

The problem with that is in fact in pl_exec.c in function
compatible_tupdesc(), which do not check for the deleted attributes.

The patch is attached.

Regards,
	Sergey

*****************************************************
Sergey E. Koposov
Max Planck Institute for Astronomy
Web: http://lnfm1.sai.msu.ru/~math 
E-mail: math(at)sai(dot)msu(dot)ru


Attachment: pl_exec.diff
Description: text/plain (1.4 KB)

Responses

pgsql-hackers by date

Next:From: Tom LaneDate: 2006-02-12 17:28:43
Subject: Re: patch fixing the old RETURN NEXT bug
Previous:From: Jim ButtafuocoDate: 2006-02-12 16:41:57
Subject: Re: Analyze and vacuum, they are sort of mandatory....

pgsql-patches by date

Next:From: Tom LaneDate: 2006-02-12 17:28:43
Subject: Re: patch fixing the old RETURN NEXT bug
Previous:From: Simon RiggsDate: 2006-02-12 16:38:46
Subject: Re: Scrollable cursors and Sort performance

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group