patch fixing the old RETURN NEXT bug
От | Sergey E. Koposov |
---|---|
Тема | patch fixing the old RETURN NEXT bug |
Дата | |
Msg-id | Pine.LNX.4.44.0602121958090.15708-200000@lnfm1.sai.msu.ru обсуждение исходный текст |
Ответы |
Re: patch fixing the old RETURN NEXT bug
Re: patch fixing the old RETURN NEXT bug Re: patch fixing the old RETURN NEXT bug |
Список | pgsql-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@sai.msu.ru
Вложения
В списке pgsql-patches по дате отправления: