Вспомогательные функции обертки сторонних данных
Несколько вспомогательных функций экспортируются из основного сервера, чтобы авторы оберток для сторонних данных могли получить легкий доступ к атрибутам объектов, связанных с FDW, например, к опциям FDW. Чтобы использовать любую из этих функций, необходимо включить заголовочный файл foreign/foreign.h
в исходный файл. В этом заголовке также определены типы структур, возвращаемые этими функциями.
ForeignDataWrapper *
GetForeignDataWrapperExtended(Oid fdwid, bits16 flags);
Эта функция возвращает объект ForeignDataWrapper
для обертки сторонних данных с данным OID. Объект ForeignDataWrapper
содержит свойства FDW (подробнее см. foreign/foreign.h
). flags
- это битовая маска с побитовым или иным значением, указывающая на дополнительный набор опций. Она может принимать значение FDW_MISSING_OK
, в этом случае вместо ошибки неопределенного объекта вызывающей стороне возвращается результат NULL.
ForeignDataWrapper *
GetForeignDataWrapper(Oid fdwid);
Эта функция возвращает объе кт ForeignDataWrapper
для обертки сторонних данных с данным OID. Объект ForeignDataWrapper
содержит свойства FDW (подробнее см. foreign/foreign.h
).
ForeignServer *
GetForeignServerExtended(Oid serverid, bits16 flags);
Эта функция возвращает объект ForeignServer
для стороннего сервера с заданным OID. Объект ForeignServer
содержит свойства сервера (см. foreign/foreign.h
). flags
- это битовая маска, указывающая на дополнительный набор опций. Она может принимать значение FSV_MISSING_OK
, в этом случае вместо ошибки неопределенного объекта вызывающей стороне возвращается результат NULL.
ForeignServer *
GetForeignServer(Oid serverid);
Эта функция возвращает объект ForeignServer
для стороннего сервера с заданным OID. Объект ForeignServer
содержит свойства сервера (подробнее см. foreign/foreign.h
).
UserMapping *
GetUserMapping(Oid userid, Oid serverid);
Эта функция возвращает объект UserMapping
для отображения пользователя данной роли на данном сервере. (Если для конкретного пользователя нет отображения, возвращается отображение для PUBLIC
, или выдает ошибку, если его нет). Объект UserMapping
содержит свойства отображения пользователя (подробнее см. в foreign/foreign.h
).
ForeignTable *
GetForeignTable(Oid relid);
Эта функция возвращает объект ForeignTable
для внешней таблицы с заданным OID. Объект ForeignTable
содержит свойства внешней таблицы (подробнее см. foreign/foreign.h
).
List *
GetForeignColumnOptions(Oid relid, AttrNumber attnum);
Эта функция возвр ащает опции FDW для столбца с заданным OID внешней таблицы и номером атрибута в виде списка DefElem
. Если столбец не имеет опций, возвращается NIL
.
Некоторые типы объектов имеют функции поиска по имени в дополнение к функциям, основанным на OID:
ForeignDataWrapper *
GetForeignDataWrapperByName(const char *name, bool missing_ok);
Эта функция возвращает объект ForeignDataWrapper
для обертки внешних данных с заданным именем. Если обертка не найдена, верните NULL, если missing_ok
равен true
, иначе выдайте ошибку.
ForeignServer *
GetForeignServerByName(const char *name, bool missing_ok);
Эта функция возвращает объект ForeignServer
для стороннего сервера с заданным именем. Если сервер не найден, возвращается NULL, если missing_ok
равен true
, в противном случае выдается ошибка.