Different handling of PL/pgSQL for-loop variables in 8.3.7 vs. 8.2.7 ???
Вложения
В списке pgsql-general по дате отправления:
| От | Atul Chojar |
|---|---|
| Тема | Different handling of PL/pgSQL for-loop variables in 8.3.7 vs. 8.2.7 ??? |
| Дата | |
| Msg-id | 002701c9ea09$578132e0$068398a0$@com обсуждение исходный текст |
| Ответ на | How to automatically propagate new/changed database functions from one database to another ("Atul Chojar" <achojar@airfacts.com>) |
| Ответы |
Re: Different handling of PL/pgSQL for-loop variables in 8.3.7 vs. 8.2.7 ???
|
| Список | pgsql-general |
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!
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера
