Ошибка при вызове функции -- подскажите что не так?

\/lad
Дата: 03.12.2003 16:06:37
Создаю функцию:

CREATE OR REPLACE FUNCTION test() RETURNS SETOF TEXT AS '
DECLARE
colval RECORD;
BEGIN
FOR colval IN SELECT * FROM property LOOP
RETURN NEXT colval.name;
END LOOP;
RETURN;
END;
' LANGUAGE 'plpgsql';

Функция создается успешно, но когда пытаюсь вызвать select * FROM test();
выдает ошибку: ERROR: parser: parse error at or near "("

народ, подскажите плиз что не так?
зы: работаю через psql
assa
Дата: 03.12.2003 17:26:30
А версия PostgreSQL?

У меня ваша ф-я (с моей, правда, таблой) отрабатывает в 7.3.4 нормально .

Вчера наблюдал такое сообщение /parse error at or near "("/ при попытке именно такого вызова (правда ф-ии на ' LANGUAGE 'sql') из 7.0. Но можно было вызвать как
SELECT function();
вместо
SELECT * FROM function();
что не спасало, ибо SELECT function() (похоже) возвращал набор oid-ов (одних и тех-же) вместо набора записей объявленной (табличной) струтуры. Правда результат отработки ф-ии я все-таки видел (потом) в заполняемой ей таблице.

А вот в 7.3. попытка вызвать сет как SELECT function(); в вашем случае не завершится успехом.
\/lad
Дата: 03.12.2003 17:46:26
у меня версия 7.2.1.beta4 под вини

Если не ошибаюсь select funk() используется для получения одиночного результата, для получения набора записей используется select * from funk()
assa
Дата: 03.12.2003 17:56:51
Я тоже так думал. Но мне 7.0 возвратил безымянную колонку, забитую одним и тем же значением. число записей совпало с числом записей в возвращаемой таблице. А SELECT * FROM fun(); не пропускается парсером 7.0 (как, видимо, и 7.2).