問題タブ [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 投票する
2 に答える
2064 参照

python - pl / python関数から呼び出されたpythonモジュールから、戻り値を取得する方法は?

この関数呼び出しが「結果」を返さない理由はありますか?

===mymoduleのコンテンツ============

0 投票する
4 に答える
11183 参照

postgresql - postgres pl/python のサードパーティ モジュールをインストールするには?

pl/python 関数内にサードパーティ モジュールをインポートする必要があります。pl/python は、サードパーティ モジュールを持たない内部 python を使用しているようです。

この種のエラーが発生します:

モジュールを pl/python にインストールして、ストアド プロシージャ コード内からインポートできるようにするにはどうすればよいですか?

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

postgresql - Postgres PL/Python で dll ライブラリをロードする正しい方法は何ですか?

以下はエラーになります

エラーメッセージ:

Python インタープリターでは問題なく動作します。

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

postgresql - PostgresqlのPLPythonとCASTの複合データ型

ユーザー定義型のストアドプロシージャをPlPythonで記述しています。Plpythonがユーザー定義型をサポートしていないことを知っているので、ユーザー定義型のCASTを作成しました。それでも、plpy.prepareを呼び出すとエラーが発生し続けます。CASTを誤って使用しているかどうかはわかりません-サンプルコードは次のとおりです。

0 投票する
2 に答える
1909 参照

python - PostgreSQL PL / Python:virtualenvでストアドプロシージャを呼び出す

PythonアプリケーションでPostgreSQLPL/ Pythonストアドプロシージャを呼び出すと、ユーザーとして実行されている別のプロセスで実行されているようpostgresです。これまでのところ、これには、自分自身とデータベースユーザーの両方がログファイルを書き込み可能にする必要があるという副作用しかありませんでした。そのため、アプリケーションとストアドプロシージャの両方がログファイルに書き込むことができます。

しかし今、私は使用を開始し、モジュールへのパスをPythonパスにvirtualenv追加するいくつかの.pthファイルをフォルダーに追加しました。~/.virtualenvs/virt_env/lib/python2.7/site-packages/

ストアドプロシージャが実行されると、ユーザーpostgresは私と同じ仮想環境にいないため、ストアドプロシージャは私のモジュールを見つけられません。グローバルPostgreSQL環境PYTHONPATHで変更できますが、仮想環境を切り替えるたびに変更する必要があります。これは、virtualenvの目的に反します...

ストアドプロシージャのPythonパスを拡張するにはどうすればよいですか?

更新

同様の質問があり、PostgresでPYTHONPATH環境変数を変更するという解決策がありました。ただし、PostgreSQLの環境変数を指定する標準的な方法はないようです。少なくとも、MacOSXでは実行可能なソリューションではありません。

0 投票する
2 に答える
594 参照

python - virtualenv で PL/Pythonu を使用する

postgres の PL/Pythonu 拡張機能を使用して、python で postgres に関数を記述しています。グローバル インストールの代わりに、postgres で仮想環境 (私は virtualenv を使用しています) を使用したいと考えています。どうすればこれを行うことができますか?

0 投票する
2 に答える
1600 参照

postgresql - PL/Python または Psycopg2

私は Postgresql 9.1 サーバーを持っており、Python でいくつかの関数を書きたいと思っています。

plpyまたはの2 つの方法がありますpsycopg2。私にとって、plpy で関数を書くことは悪夢のようなもので、多くの「準備」と「実行」メソッドが... より快適に使用できますpsycopg2が、効率が気になります。

サーバーでpsycopg2を使用するのは正しいですか?

0 投票する
2 に答える
5702 参照

postgresql-9.1 - plpython のインストール時に Postgres データベースがクラッシュする

Postgres 9.1 に plpython をインストールしようとしていますが、サーバーがクラッシュします。

私はpython 2.6.8をインストールしており、ハンドラーはシステムで正しく宣言されています:

そしてハンドラは $libdir にインストールされます:

これに関する手がかりは高く評価されます

編集

拡張機能 plpythonu、plpython2u、および plpython3u を作成しようとしましたが、それらはすべてサーバーをクラッシュさせます。

ドキュメントを少し読んで、インストールされている拡張機能を一覧表示する \dx コマンドを見つけました。

したがって、インストールされている拡張機能はplpgsqlだけだと思います。

そして私の拡張ディレクトリ:

編集

私は Linux SuSE で実行していますが、あなたの言いたいことはわかりました。

私の postgres インストールでは、pl-lang ライブラリは .../postgres/9.1/lib/postgres にあります。その中に plpython2.so と plpython3.so があります

これらのファイルのダイナミック リンク ライブラリを確認しています。

plpython3.so に対しても、Python ライブラリへの参照もありません。

しかし、python 2.6 と python 3.2 をインストールしました。Python 2 の拡張機能をインストールしたいことに注意してください。

はい、CREATE EXTENSION はまだクラッシュしています。

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

stored-procedures - postgres と plpython の間で複合型を共有できますか

すべての plpgsql および plpythonu プロシージャで使用される tt という複合型があります。ある種のplpyがありますか。plpythonu プロシージャでクラスを定義することなく、返される型または反復可能な構造体を導出するために、一貫した方法でカタログまたはスキーマにアクセスする手段はありますか?

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

postgresql - postgresql コマンドをトランザクションにラップする: truncate vs delete または upsert/merge

postgresql 9.1.3 で以下のコマンドを使用して、データを一時ステージング テーブルからすべて同じデータベース内の webapp (ジオサーバー) で使用されているテーブルに移動しています。次に、一時テーブルを削除します。

  1. TRUNCATE table_foo;

  2. INSERT INTO table_foo

    SELECT * FROM table_temp;

  3. DROP TABLE table_temp;

同時実行を可能にするために、これをトランザクションにラップしたいと思います。データセットは 2000 行未満で、切り捨ては削除よりも高速です。

  • これらのコマンドをトランザクションで実行する最良の方法は何ですか?
  • 関数を作成することはお勧めですか、それとも UPSERT/MERGE などを CTE に記述しますか?
  • TRUNCATE ではなく、すべての行を削除してから、一時テーブルから一括挿入する方がよいでしょうか?
  • ロールバックTRUNCATEまたはDELETEを許可するpostgresでは?
  • 一時テーブルは、arcpy でスクリプト化された ETL を介して毎日配信されます。postgres 内の切り捨て/削除/一括挿入部分を自動化するにはどうすればよいですか?
  • PL/pgsql、PL/python (または postgres に推奨される py) を使用することにオープンです

現在、一時ステージング テーブルが DB にインポートされた後、SQL コマンドを手動で実行しています。