Re: plpgsql's EXIT versus block and loop nesting

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: plpgsql's EXIT versus block and loop nesting
Дата
Msg-id 49FB1046.9080504@enterprisedb.com
обсуждение исходный текст
Ответ на plpgsql's EXIT versus block and loop nesting  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: plpgsql's EXIT versus block and loop nesting  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> Whilst fooling with some plpgsql code translated from Oracle, I found
> out that we interpret this construct differently than they do:
> 
>         while true loop
>             begin
>                 -- some code that might throw unique_violation
> 
>                 exit;
>             exception when unique_violation then
>                 -- take a recovery action (then go 'round the loop again)
>             end;
>         end loop;
> 
> The code author obviously expects that the EXIT will exit the WHILE
> loop, so I assume that's what Oracle does with it.  What plpgsql is
> doing is matching the EXIT to the BEGIN block, which means this is
> an infinite loop.
> 
> Aside from the question of Oracle compatibility, ISTM this behavior
> is at variance with what our manual says about EXIT:
> 
>     If no label is given, the innermost loop is terminated and the
>     statement following END LOOP is executed next.

later in that paragraph:
   EXIT can be used with all types of loops; it is not limited to use   with unconditional loops. *When used with a
BEGINblock, EXIT passes   control to the next statement after the end of the block.*
 
   Examples:   ...   BEGIN       -- some computations       IF stocks > 100000 THEN           EXIT;  -- causes exit
fromthe BEGIN block       END IF;   END;
 


That quite clearly describes the current behavior.

I'm not opposed to changing that, though. I've bumped into the same 
incompatibility with Oracle. Is it appropriate for 8.4 given that we're 
in beta already?

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andy Lester
Дата:
Сообщение: Re: GCC 4.4 compiler warnings
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: windows shared memory error