TODO for plpgsql: RETURN should accept arbitrary composite expressions

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема TODO for plpgsql: RETURN should accept arbitrary composite expressions
Дата
Msg-id 200510281541.38296.josh@agliodbs.com
обсуждение исходный текст
Ответы Re: TODO for plpgsql: RETURN should accept arbitrary composite expressions  (Josh Berkus <josh@agliodbs.com>)
Список pgsql-hackers
Folks,

On 8.0.4 and 8.1b4 given:

create type return_value as (id INTEGER,message TEXT
);

this function:

create function return_test (vuser INT, vsession INT
) returns return_value as $fnc$
declare vtemp return_value;
begin
vtemp := row( -1, 'bad' );
return vtemp;
end; $fnc$ language plpgsql;

works, but this function:

create function return_test_2 (vuser INT, vsession INT
) returns return_value as $fnc$
begin
vtemp := row( -1, 'bad' );
end; $fnc$ language plpgsql;

gives this error at run time:

ERROR:  syntax error at or near "vtemp" at character 1
QUERY:  vtemp := row( -1, 'bad' )
CONTEXT:  PL/pgSQL function "return_test_2" line 2 at SQL statement
LINE 1: vtemp := row( -1, 'bad' )

... the problem seems to be that RETURN will accept variables and constants 
but not arbitrary composites.  We should fix that eventually.   Can we put 
it on the TODO list?



-- 
--Josh

Josh Berkus
Aglio Database Solutions
San Francisco


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

Предыдущее
От: "Jim C. Nasby"
Дата:
Сообщение: Re: enums
Следующее
От: Josh Berkus
Дата:
Сообщение: Re: TODO for plpgsql: RETURN should accept arbitrary composite expressions