PostgreSQL: plv8.start_proc
Настройте процедуру запуска в конфигурации
plv8.start_proc = 'plv8_startup'
Созданная функция:
CREATE OR REPLACE FUNCTION plv8_startup ()
RETURNS void AS
$body$
this.hello = function(name){
return name + ', hello!';
};
$body$
LANGUAGE 'plv8'
VOLATILE
CALLED ON NULL INPUT
SECURITY DEFINER
COST 100;
Под пользователем postgres все работает хорошо:
DO $$
plv8.elog(NOTICE, hello('John'));
$$ LANGUAGE plv8;
результат - Джон, привет! Затем создал пользовательский тест и попытался запустить функцию:
ERROR: ReferenceError: hello is not defined
SQL-state: XX000
попытался предоставить пользовательский тест на выполнение plv8_startup - результат тот же. Что случилось?
1 ответ
Это была моя ошибка - функция была создана не в публичной схеме, поэтому система не смогла запустить ее с правами тестового пользователя /