54.1. ФÑнкÑии обÑÑÑок ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
ÐвÑÐ¾Ñ FDW (Foreign Data Wrapper, ÐбÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ ) должен ÑеализоваÑÑ ÑÑнкÑиÑ-обÑабоÑÑик и Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно добавиÑÑ ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки. Ðбе ÑÑнкÑии Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ñ Ð½Ð° компилиÑÑемом ÑзÑке, Ñаком как C, и иÑполÑзоваÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ð²ÐµÑÑии 1. ÐодÑобнее ÑоглаÑение о вÑÐ·Ð¾Ð²Ð°Ñ Ð¸ динамиÑеÑÐºÐ°Ñ Ð·Ð°Ð³ÑÑзка кода на C опиÑÑваеÑÑÑ Ð² Разделе 35.9.
ФÑнкÑиÑ-обÑабоÑÑик пÑоÑÑо возвÑаÑÐ°ÐµÑ ÑÑÑÑкÑÑÑÑ Ñ ÑказаÑелÑми на ÑеализÑÑÑие подпÑогÑаммÑ, коÑоÑÑе бÑдÑÑ Ð²ÑзÑваÑÑÑÑ Ð¿Ð»Ð°Ð½Ð¸ÑовÑиком, иÑполниÑелем и ÑазлиÑнÑми ÑлÑжебнÑми командами. ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ ÑаÑÑÑ ÑазÑабоÑки FDW заклÑÑаеÑÑÑ Ð² напиÑании ÑÑиÑ
ÑеализÑÑÑиÑ
подпÑогÑамм. ФÑнкÑиÑ-обÑабоÑÑик должна бÑÑÑ Ð·Ð°ÑегиÑÑÑиÑована в Postgres Pro как ÑÑнкÑÐ¸Ñ Ð±ÐµÐ· аÑгÑменÑов, возвÑаÑаÑÑÐ°Ñ ÑпеÑиалÑнÑй пÑевдоÑип fdw_handler. РеализÑÑÑие подпÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑедÑÑавлÑÑÑ Ñобой обÑÑнÑе ÑÑнкÑии на C, коÑоÑÑе не Ð²Ð¸Ð´Ð½Ñ Ð¸ не могÑÑ Ð²ÑзÑваÑÑÑÑ Ð½Ð° ÑÑовне SQL. Ðни опиÑÐ°Ð½Ñ Ð² Разделе 54.2.
ФÑнкÑÐ¸Ñ Ð¿ÑовеÑки оÑвеÑÐ°ÐµÑ Ð·Ð° пÑовеÑÐºÑ Ð¿Ð°ÑамеÑÑов, пеÑедаваемÑÑ
Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ CREATE и ALTER Ð´Ð»Ñ ÑÑой обÑÑÑки ÑÑоÑонниÑ
даннÑÑ
, а Ñакже паÑамеÑÑов ÑÑоÑонниÑ
ÑеÑвеÑов, ÑопоÑÑавлений полÑзоваÑелей и ÑÑоÑонниÑ
ÑаблиÑ, доÑÑÑпнÑÑ
ÑеÑез ÑÑÑ Ð¾Ð±ÑÑÑкÑ. ÐÑа ÑÑнкÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð·Ð°ÑегиÑÑÑиÑована как пÑинимаÑÑÐ°Ñ Ð´Ð²Ð° аÑгÑменÑа: ÑекÑÑовÑй маÑÑив, ÑодеÑжаÑий паÑамеÑÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки, и OID, пÑедÑÑавлÑÑÑий Ñип обÑекÑа, Ñ ÐºÐ¾ÑоÑÑм ÑвÑÐ·Ð°Ð½Ñ ÑÑи паÑамеÑÑÑ (в виде OID ÑиÑÑемного каÑалога, в коÑоÑом бÑÐ´ÐµÑ ÑоÑ
ÑанÑÑÑÑÑ Ð¾Ð±ÑекÑ: ForeignDataWrapperRelationId, ForeignServerRelationId, UserMappingRelationId или ForeignTableRelationId). ÐÑли ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки оÑÑÑÑÑÑвÑеÑ, паÑамеÑÑÑ Ð½Ðµ пÑовеÑÑÑÑÑÑ Ð½Ð¸ пÑи Ñоздании, ни пÑи изменении обÑекÑа.