We recently upgraded from postgres version 8.2.7 to 8.3.7. The below pl/pgsql test function behaves differently in the 2 versions.
The code of the function is :- CREATE OR REPLACE FUNCTION "public"."testloop" () RETURNS varchar AS $body$ BEGIN FOR idx IN 1..10 LOOP raise notice 'idx=%', idx; idx:=idx+1; END LOOP; return ''; END; $body$ LANGUAGE 'plpgsql' The sql :- select testloop(); in 8.2.7 returns:- NOTICE: idx=1 NOTICE: idx=3 NOTICE: idx=5 NOTICE: idx=7 NOTICE: idx=9 But in 8.3.7 returns:- NOTICE: idx=1 NOTICE: idx=2 NOTICE: idx=3 NOTICE: idx=4 NOTICE: idx=5 NOTICE: idx=6 NOTICE: idx=7 NOTICE: idx=8 NOTICE: idx=9 NOTICE: idx=10 So in 8.3.7, the incrementing of the for-loop variable "idx" is being ignored; that is not the case in 8.2.7. Is this a new feature of 8.3.7 or a bug? Since a lot of our functions depend on manual altering of for-loop variables, any prompt help/advise/suggestions would be greatly appreciated! Thanks! atul <http://www.airfacts.com/> AirFacts, Inc. 8120 Woodmont Ave., Suite 700 Bethesda, MD 20814 Tel: 301-760-7315
<<image001.png>>