問題タブ [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 に答える
645 参照

python - PostgreSQL - Python - トリガー - current_user へのアクセス

plPython で監査トリガーを作成しています。current_user 変数にアクセスする方法がわかりません。どういうわけかplpy経由で利用できますか?

また、変数をトリガー関数に渡すことができるかどうかも知りたいですか? もしそうなら、これはどのように行われますか?私は試した:

しかし、それは機能しません。

ありがとう。

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

python - PostgreSQL: plpython3u の単一の値を持つセットを返す関数

一連のテキストを返す plpython3u 関数を PostgreSQL で作成したいと考えています。私には奇妙に見える難問に出くわしました。マニュアルに従って、次のことができます。

これは、単一のテキストを含む一連の行を返す Python 関数です。非常に多くのことが機能し、期待される出力が得られます。

ここまでは順調ですね。ただし、この目的のためにテーブル定義を記述したくありません。setof record代わりに、この例のように使用したいと思います (たまたま整数を使用していますが、それでも):

ここで、興味深い部分に進みます。上記から一般化すると、以下の 1 つ以上の定式化が正しいはずです: 単一値のセットを返すには、Python タプルのリスト、Python 数値のリストを返すか、単一値のタプルまたは単一値のいずれかを反復します。値:

コンパイルしても上記のどれも判明しません。それらはすべて SQL パーサーが OUT パラメータのために function result type must be integer でスローアップする原因となります。SQL パーサーは Python 関数の内部を調べないため、次のことが疑われます—</p>

PostgreSQL では、returns setof record1 つのoutパラメーターと両方のパラメーターを持つ関数を定義することはできません。代わりに、出力タイプは常にテーブルとして (または同様の方法で) 定義する必要があります

誰でも私を修正してもらえますか?これが本当だとしたら、本当に迷惑です。きっと私はどこかで間違いを犯しましたか?

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

postgresql - Windows 2012 (64 ビット) 用の postgres 9.6 の plpython3u 内で使用する numpy をインストールします。

Windows 2012 (64 ビット) の postgres 9.6 で plpython3u 内で使用する numpy をインストールしようとしていますが、依存関係の問題が発生します。

1) EnterpriseDB から Postgres 9.6 と、Python 3.3 を自動的にインストールする言語パックをインストールしました。<- Python の新しいバージョンをインストールする方法はありますか?

私はやったCREATE EXTENSION plpython3u;し、それは正しく動作します。

Pythonモジュールを次のようにインストールしようとしまし pip3.exe install numpypython -m pip install --user numpy が、numpy-1.12.1はエラーを返します:

raise RuntimeError("Python バージョン 2.7 または >= 3.4 が必要です。")

古いバージョンの numpy==1.10.4 をインストールしようとすると、blas、atlas、および fortran コンパイラが利用できないというエラーが多数発生するため、それ以上の方法は追求しませんでした。

2) Python 3.6 を個別にインストールすると、EXTENSION plpython3u を作成するときに、

エラー: ライブラリ "C:/Program Files/PostgreSQL/9.6/lib/plpython3.dll" を読み込めませんでした: 指定されたモジュールが見つかりませんでした。

DLLその場所にありますが、ユーティリティ「依存」は、それが python36 ではなく python33 用にコンパイルされていることを示しており、それらの依存関係が欠落しています。plpython3.dll ファイルを置き換えて、Python 3.6 で動作させることはできますか?

確かに誰かが Windows 用の postgres に plpython3u 用の numpy をインストールしましたが、これまでのところ解決策が見つかりませんでした..

ありがとう

ピーター

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

postgresql - Postgres/timescaledb Alpine Docker イメージへの plpython3 拡張機能の追加

/ (Linux Alpine に基づく) イメージにplpython3拡張機能を追加しようとしています。timescaledbpostgres

拡張機能を作成しようとすると、次のエラーが発生します。

しかし、コンテナ内のファイルを検索すると、別のディレクトリ内でそれらを見つけることができます。

postgresql-plpython3別のディレクトリにインストールしたりpostgres、追加した拡張機能を認識するように構成するにはどうすればよいですか?

アップデート

mvファイルだけ/usr/local/share/postgresql/extensionを取得すると、エラーが発生します。

更新 2

したがって、問題$libdirはそれがpg_config --pkglibdir指して/usr/local/lib/postgresqlいるがplpython3.so内部にあること/usr/lib/postgresqlでした。すべてを適切/usr/localなディレクトリに移動すると、拡張機能を正常に作成できます。

これは、答えを見つけたいという質問につながります。の代わりにpostgresql-plpython3どのようにインストールできますか?/usr/local/.../usr/...