отличя версий 7.4 и 8.0?

Поиск
Список
Период
Сортировка
От Zet
Тема отличя версий 7.4 и 8.0?
Дата
Msg-id 19512555875.20051120145500@on.kg
обсуждение исходный текст
Список pgsql-ru-general
Приветствую

Дома установлена версия 8.0 для windows
На сервере, где хостимся - 7.4.3 - linux fedore core 2

Есть таблица tablename, есть триггер BEFORE INSERT
В триггерной функции идет обращение к другой функции передачей ей
такого параметра, как new, т.е. новые введенные значения полей для
обработки

Примерно выглядет так
PERFORM some_func(new);

Функция описана
CREATE FUNCTION some_func(tablename) ...

я выделил часть кода функцию, т.к. там приличный кусок, который
необходим при разных триггерах и при разных условиях

в 8.0 это работает без проблем, но после установки на сервер, выдает
ошибку
ERROR: NEW used in query that is not in a rule CONTEXT: PL/pgSQL
function ...

это отличия версий ПГ?
или в 7.4 я должен что-то декларировать дополнительно и как?

---
затем попробовал кое-что:
попробовал передавать не new, а создал type tablename_fields с полями
с таблицы tablename, и заменил функцию на
CREATE FUNCTION some_func(tablename_fields) ...

f в declare объявил f tablename_fields%rowtype;
и вызываю функцию
f.field1 := new.field1;
f.field2 := new.field2;
...
PERFORM some_func(f);

но теперь ошибка на сервере хостера
ERROR: column "f" does not exist CONTEXT: PL/pgSQL function ...

Подскажите, как передать функции параметры?
Также буду благодарен за ссылку на раздел мануала, где это более
конкретно описано

С уважением, Zet.


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

Предыдущее
От: Oleg Bartunov
Дата:
Сообщение: Re: postgresql 8.1 & koi8r bugs
Следующее
От: "Andrey N. Oktyabrski"
Дата:
Сообщение: То ли в ролях дырка, то ли я не понимаю чего-то