Re: patch fixing the old RETURN NEXT bug
От | Bruce Momjian |
---|---|
Тема | Re: patch fixing the old RETURN NEXT bug |
Дата | |
Msg-id | 200606161744.k5GHiwF09905@candle.pha.pa.us обсуждение исходный текст |
Ответ на | patch fixing the old RETURN NEXT bug ("Sergey E. Koposov" <math@sai.msu.ru>) |
Список | pgsql-patches |
Added to TODO: o Fix problems with RETURN NEXT on tables with dropped/added columns after function creation http://archives.postgresql.org/pgsql-patches/2006-02/msg00165$ --------------------------------------------------------------------------- Sergey E. Koposov wrote: > 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 > Content-Description: [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend -- Bruce Momjian http://candle.pha.pa.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
В списке pgsql-patches по дате отправления: