- バックアップ一覧
- ソース を表示
- PostgreSQL/開発/backend/foreign/foreign.c は削除されています。
- 1 (2017-05-13 (土) 00:44:25)
- 2 (2017-05-13 (土) 00:57:18)
- 3 (2017-05-13 (土) 22:30:26)
- 4 (2017-05-13 (土) 23:41:32)
view source on doxygen.postgresql.org
サンプルプログラム †
#include "foreign/foreign.h" /* [Sample] CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', dbname 'foodb', port '5432'); CREATE USER MAPPING FOR PUBLIC SERVER postgres_server OPTIONS (...); CREATE FOREIGN TABLE T (....) SERVER postgres_server OPTIONS (table_name 'warehouse', schema_name 'sales'); */ ListCell *lc; // 外部テーブル情報取得 ForeignTable *table = GetForeignTable(foreigntableid); foreach(lc, table->options) { DefElem *def = (DefElem*)lfirst(lc); elog(NOTICE, "%s = %s", def->defname, defGetString(def)); } // server情報取得 ForeignServer *server = GetForeignServer(table->serverid); elog(NOTICE, "servername = %s", server->servername); foreach(lc, server->options) { DefElem *def = (DefElem*)lfirst(lc); elog(NOTICE, "%s = %s", def->defname, defGetString(def)); } // ForeignDataWrapper情報取得 ForeignDataWrapper *wrapper = GetForeignDataWrapper(server->fdwid); elog(NOTICE, "fdwname = %s", wrapper->fdwname); foreach(lc, wrapper->options) { DefElem *def = (DefElem*)lfirst(lc); elog(NOTICE, "%s = %s", def->defname, defGetString(def)); } // UserMapping情報取得 UserMapping *mapping = GetUserMapping(wrapper->owner, server->serverid); elog(NOTICE, "serverid = %d, userid = %d", mapping->serverid, mapping->userid); foreach(lc, mapping->options) { DefElem *def = (DefElem*)lfirst(lc); elog(NOTICE, "%s = %s", def->defname, defGetString(def)); }