問題タブ [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.
python - pl / python関数から呼び出されたpythonモジュールから、戻り値を取得する方法は?
この関数呼び出しが「結果」を返さない理由はありますか?
===mymoduleのコンテンツ============
postgresql - postgres pl/python のサードパーティ モジュールをインストールするには?
pl/python 関数内にサードパーティ モジュールをインポートする必要があります。pl/python は、サードパーティ モジュールを持たない内部 python を使用しているようです。
この種のエラーが発生します:
モジュールを pl/python にインストールして、ストアド プロシージャ コード内からインポートできるようにするにはどうすればよいですか?
postgresql - Postgres PL/Python で dll ライブラリをロードする正しい方法は何ですか?
以下はエラーになります
エラーメッセージ:
Python インタープリターでは問題なく動作します。
postgresql - PostgresqlのPLPythonとCASTの複合データ型
ユーザー定義型のストアドプロシージャをPlPythonで記述しています。Plpythonがユーザー定義型をサポートしていないことを知っているので、ユーザー定義型のCASTを作成しました。それでも、plpy.prepareを呼び出すとエラーが発生し続けます。CASTを誤って使用しているかどうかはわかりません-サンプルコードは次のとおりです。
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では実行可能なソリューションではありません。
python - virtualenv で PL/Pythonu を使用する
postgres の PL/Pythonu 拡張機能を使用して、python で postgres に関数を記述しています。グローバル インストールの代わりに、postgres で仮想環境 (私は virtualenv を使用しています) を使用したいと考えています。どうすればこれを行うことができますか?
postgresql - PL/Python または Psycopg2
私は Postgresql 9.1 サーバーを持っており、Python でいくつかの関数を書きたいと思っています。
plpy
またはの2 つの方法がありますpsycopg2
。私にとって、plpy で関数を書くことは悪夢のようなもので、多くの「準備」と「実行」メソッドが... より快適に使用できますpsycopg2
が、効率が気になります。
サーバーでpsycopg2を使用するのは正しいですか?
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 はまだクラッシュしています。
stored-procedures - postgres と plpython の間で複合型を共有できますか
すべての plpgsql および plpythonu プロシージャで使用される tt という複合型があります。ある種のplpyがありますか。plpythonu プロシージャでクラスを定義することなく、返される型または反復可能な構造体を導出するために、一貫した方法でカタログまたはスキーマにアクセスする手段はありますか?
postgresql - postgresql コマンドをトランザクションにラップする: truncate vs delete または upsert/merge
postgresql 9.1.3 で以下のコマンドを使用して、データを一時ステージング テーブルからすべて同じデータベース内の webapp (ジオサーバー) で使用されているテーブルに移動しています。次に、一時テーブルを削除します。
TRUNCATE table_foo;
INSERT INTO table_foo
SELECT * FROM table_temp;
DROP TABLE table_temp;
同時実行を可能にするために、これをトランザクションにラップしたいと思います。データセットは 2000 行未満で、切り捨ては削除よりも高速です。
- これらのコマンドをトランザクションで実行する最良の方法は何ですか?
- 関数を作成することはお勧めですか、それとも UPSERT/MERGE などを CTE に記述しますか?
- TRUNCATE ではなく、すべての行を削除してから、一時テーブルから一括挿入する方がよいでしょうか?
- ロールバックTRUNCATEまたはDELETEを許可するpostgresでは?
- 一時テーブルは、arcpy でスクリプト化された ETL を介して毎日配信されます。postgres 内の切り捨て/削除/一括挿入部分を自動化するにはどうすればよいですか?
- PL/pgsql、PL/python (または postgres に推奨される py) を使用することにオープンです
現在、一時ステージング テーブルが DB にインポートされた後、SQL コマンドを手動で実行しています。