Why won't nested select-into expression work?

Поиск
Список
Период
Сортировка
От Leon Starr
Тема Why won't nested select-into expression work?
Дата
Msg-id 27CB373A-7D3D-451A-AA4E-3026626493F9@modelint.com
обсуждение исходный текст
Ответы Re: Why won't nested select-into expression work?  (Tom Lane <tgl@sss.pgh.pa.us>)
Why won't this function loop?  ("Rob Richardson" <Rob.Richardson@rad-con.com>)
Список pgsql-novice
I've got an expression that works fine if I assign its return value (bigint) to a temporary variable (t).  But if
I eliminate the variable and just nest the expression, its outer expression (select into) fails for some reason.

Relevant variables:
    my_paragraph    paragraph%rowtype;
    t bigint;

I tried this and it failed (see embedded comments):

        select * into my_paragraph from paragraph where
            form = p_form and
            number = ( select method_paragraph_new( p_form, 0, p_append ) );
            -- Inner expression above inserts a new row in the 'paragraph' table which
            -- just happens to be the one I want selected by the outer select-into expression
        if not found then
            raise exception 'DEBUG: Paragraph create failed';  -- This is what happens!
        else
            raise exception'DEBUG:  Success!';
        end if;

But it works just fine if I use the variable 't' instead:

        t := ( select method_paragraph_new( p_form, 0, p_append ) );
        select * into my_paragraph from paragraph where
            form = p_form and
            number = t;  -- instead of a nested expression that inserts the thing I am looking for
        if not found then
            raise exception 'DEBUG: Paragraph create failed';
        else
            raise exception'DEBUG:  Success!';  -- This is what happens!
        end if;

There's probably something fundamental I am not understanding here.  Does anyone see the problem?



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

Предыдущее
От: Vaduvoiu Tiberiu
Дата:
Сообщение: Re: Null values detected as 0 value
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Why won't nested select-into expression work?