CREATE FOREIGN DATA WRAPPER
CREATE FOREIGN DATA WRAPPER â ÑоздаÑÑ Ð½Ð¾Ð²ÑÑ Ð¾Ð±ÑÑÑÐºÑ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
СинÑакÑиÑ
CREATE FOREIGN DATA WRAPPERимÑ[ HANDLERÑÑнкÑиÑ_обÑабоÑÑик| NO HANDLER ] [ VALIDATORÑÑнкÑиÑ_пÑовеÑки| NO VALIDATOR ] [ OPTIONS (паÑамеÑÑ'знаÑение' [, ... ] ) ]
ÐпиÑание
CREATE FOREIGN DATA WRAPPER ÑоздаÑÑ Ð¾Ð±ÑÑÑÐºÑ ÑÑоÑонниÑ
даннÑÑ
. ÐладелÑÑем обÑÑÑки ÑÑановиÑÑÑ ÑоздавÑий ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ.
ÐÐ¼Ñ Ð¾Ð±ÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ ÑникалÑнÑм в базе даннÑÑ .
СоздаваÑÑ Ð¾Ð±ÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
ÐаÑамеÑÑÑ
имÑÐÐ¼Ñ Ñоздаваемой обÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ .
HANDLERÑÑнкÑиÑ_обÑабоÑÑикРаÑгÑменÑе
ÑÑнкÑиÑ_обÑабоÑÑикÑказÑваеÑÑÑ Ð¸Ð¼Ñ Ñанее заÑегиÑÑÑиÑованной ÑÑнкÑии, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑзÑваÑÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑÑнкÑий, ÑеализÑÑÑÐ¸Ñ Ð¾Ð±ÑаÑÐµÐ½Ð¸Ñ Ðº ÑÑоÑонним ÑаблиÑам. ФÑнкÑиÑ-обÑабоÑÑик не пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°ÑгÑменÑÑ Ð¸ возвÑаÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ Ñипаfdw_handler.ÐбÑÑÑÐºÑ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑоздаÑÑ Ð¸ без ÑÑнкÑии-обÑабоÑÑика, но ÑеÑез ÑакÑÑ Ð¾Ð±ÑÑÑÐºÑ Ð½ÐµÐ»ÑÐ·Ñ Ð±ÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ ÑÑоÑонние ÑаблиÑÑ, Ñ Ð¾ÑÑ Ð¾Ð±ÑÑвиÑÑ Ð¸Ñ Ð²Ð¿Ð¾Ð»Ð½Ðµ возможно.
VALIDATORÑÑнкÑиÑ_пÑовеÑкиРаÑгÑменÑе
ÑÑнкÑиÑ_пÑовеÑкиÑказÑваеÑÑÑ Ð¸Ð¼Ñ Ñанее заÑегиÑÑÑиÑованной ÑÑнкÑии, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑзÑваÑÑÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки обÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов, пеÑедаваемÑÑ Ð¾Ð±ÑÑÑке ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ , а Ñакже паÑамеÑÑов ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑеÑвеÑов, ÑопоÑÑавлений полÑзоваÑелей и ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑаблиÑ, доÑÑÑпнÑÑ ÑеÑез ÑÑÑ Ð¾Ð±ÑÑÑкÑ. ÐÑли ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки не задана или ÑказаноNO VALIDATOR, паÑамеÑÑÑ Ð½Ðµ бÑдÑÑ Ð¿ÑовеÑÑÑÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов. (ÐбÑÑÑка ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ Ð¸Ð»Ð¸ не пÑинимаÑÑ Ð½ÐµÐ²ÐµÑнÑе ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑов во вÑÐµÐ¼Ñ Ð²ÑполнениÑ, в завиÑимоÑÑи Ð¾Ñ ÑеализаÑии.) ФÑнкÑÐ¸Ñ Ð¿ÑовеÑки должна пÑинимаÑÑ Ð´Ð²Ð° аÑгÑменÑа: пеÑвÑй Ñипаtext[](в нÑм ÑодеÑжиÑÑÑ Ð¼Ð°ÑÑив паÑамеÑÑов, Ñ ÑанÑÑÐ¸Ñ ÑÑ Ð² ÑиÑÑемном каÑалоге), а вÑоÑой Ñипаoid(в нÑм ÑказÑваеÑÑÑ OID ÑиÑÑемного каÑалога Ñ ÑÑими паÑамеÑÑами). ÐозвÑаÑаемое знаÑение игноÑиÑÑеÑÑÑ; ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки должна ÑообÑаÑÑ Ð¾ невеÑнÑÑ Ð¿Ð°ÑамеÑÑÐ°Ñ , вÑзÑÐ²Ð°Ñ ÑиÑÑемнÑÑ ÑÑнкÑиÑereport(ERROR).OPTIONS (паÑамеÑÑ'знаÑение' [, ... ] )ÐÑо пÑедложение опÑеделÑÐµÑ Ð¿Ð°ÑамеÑÑÑ Ð´Ð»Ñ Ñоздаваемой обÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÐ°Ð±Ð¾Ñ Ð´Ð¾Ð¿ÑÑÑимÑÑ Ð¿Ð°ÑамеÑÑов и знаÑений Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ обÑÑÑки Ñвой, конÑÑÐ¾Ð»Ñ Ð¸Ñ Ð¿ÑавилÑноÑÑи оÑÑÑеÑÑвлÑÐµÑ ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðмена паÑамеÑÑов Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑникалÑнÑми.
ÐÑимеÑаниÑ
ФÑнкÑионалÑноÑÑÑ PostgreSQL по ÑабоÑе Ñо ÑÑоÑонними даннÑми пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð°ÐºÑивно ÑазвиваÑÑÑÑ. Ðа даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²ÑполнÑеÑÑÑ ÑолÑко пÑимиÑÐ¸Ð²Ð½Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð·Ð°Ð¿ÑоÑов (и по болÑÑей ÑаÑÑи ÑÑо Ñоже Ð´ÐµÐ»Ð°ÐµÑ Ð¾Ð±ÑÑÑка), Ñак ÑÑо в ÑÑом напÑавлении еÑÑÑ Ð¿Ð¾Ð»Ðµ Ð´Ð»Ñ ÑлÑÑÑÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи.
ÐÑимеÑÑ
Создание беÑполезной обÑÑÑки ÑÑоÑонниÑ
даннÑÑ
dummy:
CREATE FOREIGN DATA WRAPPER dummy;
Создание обÑÑÑки ÑÑоÑонниÑ
даннÑÑ
file Ñ ÑÑнкÑией-обÑабоÑÑиком file_fdw_handler:
CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;
Создание обÑÑÑки ÑÑоÑонниÑ
даннÑÑ
mywrapper Ñ Ð¿Ð°ÑамеÑÑами:
CREATE FOREIGN DATA WRAPPER mywrapper
OPTIONS (debug 'true');СовмеÑÑимоÑÑÑ
CREATE FOREIGN DATA WRAPPER ÑооÑвеÑÑÑвÑÐµÑ ÑÑандаÑÑÑ ISO/IEC 9075-9 (SQL/MED), за иÑклÑÑением Ñого, ÑÑо пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ HANDLER и VALIDATOR ÑÑандаÑÑом не пÑедÑÑмоÑÑенÑ, а пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ LIBRARY и LANGUAGE, напÑоÑив, не ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ Ð² PostgreSQL.
УÑÑиÑе, однако, ÑÑо ÑÑнкÑионалÑноÑÑÑ SQL/MED в Ñелом еÑÑ Ð½Ðµ обеÑпеÑиваеÑÑÑ.