3

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

4

1 に答える 1

1

それは私のバグでした-関数はパブリックスキーマで作成されていないため、システムはテストユーザー権限で開始できませんでした/

于 2014-01-13T12:43:04.633 に答える