Re: a few small bugs in plpgsql

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: a few small bugs in plpgsql
Дата
Msg-id AANLkTi=HBjjMzn30EA+i-C2UMAN=ZH0xK8zGVp6PCWWE@mail.gmail.com
обсуждение исходный текст
Ответ на Re: a few small bugs in plpgsql  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: a few small bugs in plpgsql  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hello

2010/10/8 Tom Lane <tgl@sss.pgh.pa.us>:
> Pavel Stehule <pavel.stehule@gmail.com> writes:
>> a) parser allow a labels on invalid positions with strange runtime bug:
>
>> postgres=# CREATE OR REPLACE FUNCTION foo()
>> RETURNS void AS $$
>> BEGIN
>>   FOR i IN 1..2
>>   <<<invalidLabel>>
>>   LOOP
>>     RAISE NOTICE '%',i;
>>   END LOOP;
>> END;
>> $$ LANGUAGE plpgsql;
>> CREATE FUNCTION
>
>> ERROR:  column "invalidlabel" does not exist
>> LINE 2:   <<<invalidLabel>>
>>              ^
>> QUERY:  SELECT 2
>>   <<<invalidLabel>>
>> CONTEXT:  PL/pgSQL function "foo" line 3 at FOR with integer loop variable
>
> That isn't a bug, because the construct isn't a label, and wouldn't be
> even if you'd gotten the number of <'s right ;-).  What you have is an
> expression "2 <<< invalidLabel >>", which given the right operator
> definitions could be perfectly valid.  plpgsql labels can't appear in
> the middle of an SQL expression.
>

I see it now - I did a bug <<<some>>, but with correct text there is same behave

CREATE OR REPLACE FUNCTION foo()
RETURNS void AS $$
BEGIN FOR i IN 1..10 <<label>> LOOP   RAISE NOTICE '%', i; END LOOP;
END;
$$ LANGUAGE plpgsql;
CREATE FUNCTION

Now I understand to interpretation. But there is little bit difficult
to understand to error message. Can be message enhanced to show a
complete expression? Some like

postgres=# select foo();
ERROR:  column "label" does not exist
Detail: Expr 10 <<label>>
LINE 2:   <<label>>

Regards

Pavel


>                        regards, tom lane
>


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

Предыдущее
От: Fujii Masao
Дата:
Сообщение: Re: Issues with Quorum Commit
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: a few small bugs in plpgsql