[pgsql-jp: 41047] PL/pgSQL中のループ内での変数更新

xrstt070 @ yahoo.co.jp xrstt070 @ yahoo.co.jp
2012年 2月 9日 (木) 15:46:45 JST


いつもお世話になっております。

以下のPL/pgSQLを実行した場合の動作について
質問があります。

CREATE OR REPLACE FUNCTION test() RETURNS INTEGER AS $$
DECLARE
	iCnt	INTEGER;
BEGIN
	FOR iCnt IN REVERSE 3 .. 1 LOOP
		RAISE NOTICE '%', iCnt;
		iCnt := 0;
	END LOOP;
	
	RETURN 0;
END;
$$ LANGUAGE 'plpgsql';

このファンクションを実行した場合、
3だけが表示され終了することを想定していましたが、
3,2,1と表示され終了しました。
これは正常な動作なのでしょうか?

CentOS、DBのバージョンは8.3.5です。
ちなみに8.2.4では3だけが表示され終了しました。

よろしくお願いします。



pgsql-jp メーリングリストの案内