56.3. Вспомогательные функции для внешних оберток данных#

56.3. Вспомогательные функции для внешних оберток данных

56.3. Вспомогательные функции для внешних оберток данных

Несколько вспомогательных функций экспортируются из основного сервера, чтобы авторы оберток внешних данных могли легко получить доступ к атрибутам объектов, связанных с обертками для внешних данных, такими как параметры обертки внешних данных. Для использования любой из этих функций вам необходимо включить заголовочный файл 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, в противном случае генерируется ошибка.