configで起動手順を設定する
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の実行時にユーザーテストを許可しようとしました-結果は同じです。なにが問題ですか?