問題タブ [foreign-data-wrapper]
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.
database - PostgreSQLの外部テーブルSELECT MAX(id)クエリでインデックスを使用するには?
外部テーブル (postgresql_fdw
外部データ ラッパーを使用) があり、すべてのレコードをコピーするための最大 ID を見つける必要があります。実行するSELECT MAX(id) FROM foreign_table
と、インデックスを使用していないようです:
SELECT MAX(id) FROM table
「実際の」テーブルで同じクエリ ( ) を実行すると、インデックスが使用されます。
外部テーブルを持つデータベースのバージョンは 9.4.4 で、「実際の」テーブルを持つデータベースのバージョンは 9.3.9 です。
最初のクエリでインデックスを使用する方法はありますか?
mysql - FOREIGN TABLEの最後の挿入IDを取得するには?
行を PosgreSQL FOREIGN TABLEに挿入する場合、これらの関数は Postgre シーケンスから値を取得する必要があるため、CURRVAL/LASTVAL を使用できませんが、ここでは行が MySQL バックエンドに挿入され、AUTOINCREMENT が変更されます。
そのフィールドの LASTINSERTID を取得する方法はありますか?
(mysql_fdw postgresql エクステンションは公式にこれをサポートしていません)
UPD
このトピックについて 1 つの提案があります。
この問題を解決するには、mysql_fdw エクステンションが何らかの UDF を実装する必要があるように思われるので、現在のセッションのMySQL バックエンドにSELECT MYSQL_FDW_LASTINSERT_ID
発行することができます。SELECT LAST_INSERT_ID()
postgresql - postgresプロセスを安全に強制終了するには?
plpgsql 関数があります。この関数は、oracle_fdw プラグインを介して OracleXE に接続されている外部テーブルの行を削除および挿入します。毎分 cron は、psql を使用して 10 個の異なるテーブルに対してこの関数の 10 個のインスタンスを開始します。ときどき (1 週間に 1 回未満) 1 つのインスタンスが動かなくなることがあります。アクティブな状態ですが、キャンセルまたは終了することはできません。SIGKILL で強制終了できますが、これにより他のすべての postgres プロセスがキャンセルされ、回復モードが開始されます。SIGKILL を使用せずにこのプロセスを停止することは可能ですか? (CentOS 7 上の Postgres 9.3)
postgresql - 外部データ ラッパーでの WHERE 句の条件へのアクセス
一連の FDW テーブルを介してキー/値ストアからデータを公開しています。小さなサブセットのみが必要な場合に Postgres がテーブル全体を頻繁にスキャンすることを余儀なくされることを除いて、すべて正常に機能しています。
例えば:
SELECT * FROM person WHERE person_id='WLW001';
最後に LIMIT 1 を追加しない限り、すべての人の行を検索します。
私のキー/値ストアでは、キーの一部として「WLW001」を渡すだけで、適切なレコードを直接見つけることができます。
つまり、クエリをキー/値ストアに最適化するための WHERE 句の条件を見つける必要があります。FDW の and と ドキュメントの多くの例に目を通しましたが、RelOptInfo または scan_clauses リストまたはヘルパー関数を使用してこの情報を取得する方法を説明するものは見つかりませんでした。
また、SELECT ステートメントにパラメーター マーカーが含まれている場合は、マーカーの値を置き換える必要があるようです。値はどこで確認できますか?
postgresql-9.4 - Postgre: 外部テーブルへの外部キー
たとえば、次のような外部テーブルがあります。
そのテーブルのプライマリ キーとして id を使用します (リモート データベースで設定)。ローカル テーブルで外部テーブルを参照し、ローカル テーブルに外部キー制約を設定したいと考えています。たとえば、次のようになります。
ただし、外部キー制約を追加しようとすると、次のエラーが発生します。
外部テーブルに外部キー制約を追加することはできますか?
postgresql - 外部データ ラッパー fdw_postgres は PostGIS の GEOMETRY データ型を処理できますか?
fdw_postgresを介して別の DB からデータにアクセスしています。それはうまくいきます:
ただし、data_type
fdw_table のクエリを実行すると、次の結果が得られます。
name text
area double precision
use text
geom USER-DEFINED
fdw_postgresは PostGIS の GEOMETRY データ型を処理できませんか? このコンテキストでの USER-DEFINED とはどういう意味ですか?