53.3. ÐÑпомогаÑелÑнÑе ÑÑнкÑии Ð´Ð»Ñ Ð¾Ð±ÑÑÑок ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
ЯдÑо ÑеÑвеÑа ÑкÑпоÑÑиÑÑÐµÑ Ð½Ð°Ð±Ð¾Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½ÑÑ
вÑпомогаÑелÑнÑÑ
ÑÑнкÑий, коÑоÑÑе позволÑÑÑ ÑазÑабоÑÑикам обÑÑÑок ÑÑоÑонниÑ
даннÑÑ
легко обÑаÑаÑÑÑÑ Ðº аÑÑибÑÑам обÑекÑов, ÑвÑзаннÑÑ
Ñ FDW, напÑимеÑ, к паÑамеÑÑам FDW. ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ÑÑи ÑÑнкÑии, необÑ
одимо вклÑÑиÑÑ Ð² иÑÑ
однÑй Ñайл заголовоÑнÑй Ñайл foreign/foreign.h. Ð ÑÑом заголовоÑном Ñайле Ñакже опÑеделÑÑÑÑÑ ÑÐ¸Ð¿Ñ ÑÑÑÑкÑÑÑ, возвÑаÑаемÑÑ
ÑÑими ÑÑнкÑиÑми.
ForeignDataWrapper * GetForeignDataWrapper(Oid fdwid);
ÐÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð¾Ð±ÑÐµÐºÑ ForeignDataWrapper Ð´Ð»Ñ Ð¾Ð±ÑÑÑки ÑÑоÑонниÑ
даннÑÑ
Ñ ÑказаннÑм OID. ÐбÑÐµÐºÑ ForeignDataWrapper ÑодеÑÐ¶Ð¸Ñ ÑвойÑÑва FDW (они опиÑÐ°Ð½Ñ Ð² foreign/foreign.h).
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. ÐÑли Ð´Ð»Ñ ÑÑолбÑа не опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð¿Ð°ÑамеÑÑÑ, возвÑаÑаеÑÑÑ NULL.
Рдополнение к ÑÑнкÑиÑм, вÑбиÑаÑÑим обÑекÑÑ Ð¿Ð¾ 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, а инаÑе вÑдаÑÑÑÑ Ð¾Ñибка.