問題タブ [plpython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
347 参照

python - PL/Python のトレースバックをより詳細にする方法は?

psql現在、エラーが発生した場合、 Python モジュールをインポートしてそこから関数を呼び出す PL/Python プロシージャのトレースバックがあります。

この環境変数を設定log_error_verbosity = verboseして設定しようとしました。何も助けませんでした。postgresql.confPYTHONVERBOSE=1 PYTHONDEBUG=1

可能であれば、実際にそれをより詳細に設定する方法を誰が知っていますか?

0 投票する
0 に答える
1313 参照

python - PostgreSQL で PL/Python 関数を使用して Python スクリプト ファイルを呼び出す

PL/Python で記述された PostgreSQL 関数から外部の Python スクリプト ファイルを呼び出そうとしています。

私の直感は、私を次のようなコードに駆り立てました:

しかし、実行するSELECT foo()と、次のエラー メッセージが返されます。

私はそれをグーグルで検索しましたが、明らかに実行許可の問題を扱っています。しかし、私は本当に確信が持てません...

それで、私がやりたいことが本当に可能かどうか、そして良い方法を使用するかどうかを尋ねさせてください。

答えが「はい」の場合、PosgreSQL ユーザーとスクリプト ファイルの所有者の間で発生するこの実行権限の問題をどのように管理すればよいでしょうか?

前もって感謝します、

マーティン

0 投票する
1 に答える
287 参照

postgresql - 言語 plpython3u は許可されていません

私はdebian jessieに取り組んでいます

言語をインストールしました:

それから :

それから :

私はこの機能を試しました:

私はdbを強制しようとしました:

そして、メッセージが表示されます。既にインストールされているため、さらに何をすべきかわかりません??

0 投票する
1 に答える
714 参照

postgresql - Python 関数はどのようにコンパイルされ、PostgreSQL に保存されますか?

シナリオ:

  1. ディスクのどこかにPython関数があります。
  2. ディスク上のステップ1からそのpython関数を参照しているpgサーバーでplpythonu関数をコンパイルします。
  3. Python関数で何かを変更します(ステップ1から)。
  4. plpythonu 関数を (ステップ 2 から) コンパイルすると、ステップ 3 で行った変更が pg サーバーから呼び出したときに有効になりません。

そのような関数の例は、私の他の質問で見ることができます: Python function hangs when called from within sql function

私の仮定(これは私にはどのように見えるか):

  • PG サーバーは、python 関数 (ステップ 1) コードと plpythonu コードの両方を最初のコンパイル時にどこかに保存します。
  • plpythonu 関数を再コンパイル (手順 4) するときに、リンクされた関数 (手順 1) を再度チェックしません。この動作を何らかの形で変更または影響を受けることはできますか?

これらの仮定が間違っている場合は、私も訂正して説明してください。または、これが見つかるドキュメントを教えてください。まだ見つけることができません。

0 投票する
1 に答える
1867 参照

postgresql - 別の PL/Python ブロックから postgres PL/Python ストアド関数を呼び出す

PL/Python 関数を他の PL/Python ブロックから通常の Python 関数として呼び出すことはできますか?

たとえば、関数 f1 があります。

この関数を他の関数またはブロック、たとえばこの無名ブロックから呼び出したい:

これは を使用して実行できますがt = plpy.execute("select f1()")、可能であれば、通常の Python 関数として呼び出して、型変換 (jsonb など) を回避したいと考えています。

(私はplpython3u〜Python 3を使用しています)。