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 ответ

Это была моя ошибка - функция была создана не в публичной схеме, поэтому система не смогла запустить ее с правами тестового пользователя /

Другие вопросы по тегам