(plpgsql) DECLARE foo NUMERIC(5,2): syntax error at "("

Поиск
Список
Период
Сортировка
От Angus Lees
Тема (plpgsql) DECLARE foo NUMERIC(5,2): syntax error at "("
Дата
Msg-id 20020221033441.GA1092@roach.switchonline.com.au
обсуждение исходный текст
Ответы Re: (plpgsql) DECLARE foo NUMERIC(5,2): syntax error at "("  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
PL/pgSQL docs say "PL/pgSQL variables can have any SQL datatype".

but when i try:

CREATE FUNCTION foo() RETURNS NUMERIC(5,2) AS '
DECLARE
    bar NUMERIC(5,2);
BEGIN
    bar := 123.45;
    return bar;
END;
' LANGUAGE 'plpgsql';


then "select foo()" gives:
NOTICE:  plpgsql: ERROR during compile of foo near line 2
ERROR:  parse error at or near "("


declaring bar as "FLOAT8" (for example) works as expected.


from a quick look at plpgsql/src/gram.y, the decl_dtypename rule
only allows type modifiers (decl_attypmod) on CHAR, VARCHAR or BPCHAR.

scan.l doesn't even recognise NUMERIC or DECIMAL as keywords.


(debian postgresql 7.1.3-6 package on Linux/Intel)

--
 - Gus

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

Предыдущее
От: "Hardeep"
Дата:
Сообщение:
Следующее
От: Tom Lane
Дата:
Сообщение: Re: (plpgsql) DECLARE foo NUMERIC(5,2): syntax error at "("