Re: Foreign Data Wrapper Handler - Mailing list pgsql-general
From | Susan Hurst |
---|---|
Subject | Re: Foreign Data Wrapper Handler |
Date | |
Msg-id | 705d3d33d46358c460659798c14377fc@mail.brookhurstdata.net Whole thread Raw |
In response to | Re: Foreign Data Wrapper Handler (Laurenz Albe <laurenz.albe@cybertec.at>) |
Responses |
Re: Foreign Data Wrapper Handler
Re: Foreign Data Wrapper Handler |
List | pgsql-general |
Thanks for the detailed instructions, Laurenz! "The foreign server encapsulates the connection string to access a remote PostgreSQL database. Define one per remote database you want to access." Where do I define "one per remote database"?.....in pg_hba.conf? --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Susan E Hurst Principal Consultant Brookhurst Data LLC Email: susan.hurst@brookhurstdata.com Mobile: 314-486-3261 On 2020-11-09 11:12, Laurenz Albe wrote: > On Sun, 2020-11-08 at 13:09 -0600, Susan Hurst wrote: >> The first pass thru https://www.postgresql.org/docs/12/fdwhandler.html >> does not tell me what I think I need to know, but I will digest this >> more thoroughly. Maybe I need to understand more of the lingo re: >> foreign data wrappers. I do understand that all fdw names must be >> unique >> within a database so if I want to connect to more than one foreign db, >> I >> need a different name for each connection. I cannot name each fdw >> postgres_fdw. I would like to name the fdws something like: >> dbname_to_foreigndbname. >> >> For example, here are 2 possible fdws: >> >> create foreign data wrapper stp_to_geo; >> create foreign data wrapper stp_to_metrics; >> >> That syntax creates the fdw and I can create user mappings but I >> cannot >> import any foreign schemas into my database. The error message says >> that >> there is no handler for the fdw. That's where I'm stuck. >> >> BTW, I did try using postgres_fdw as a handler... >> >> create foreign data wrapper stp_to_geo handler postgres_fdw; >> >> ...but then I got these errors: >> ERROR: function postgres_fdw() does not exist >> ERROR: foreign-data wrapper "stp_to_geo" does not exist >> >> Looks like I need to study a bit more. > > This is how you would create a new foreign data wrapper object for > PostgreSQL: > > CREATE FOREIGN DATA WRAPPER myfdw > HANDLER public.postgres_fdw_handler > VALIDATOR public.postgres_fdw_validator; > > This assumes that you installed the extension "postgres_fdw" in schema > "public". > > But you normally don't have to create a new foreign data wrapper: the > one named > "postgres_fdw" that is created by the extension is good enough. > The only reason would be to have a foreign data wrapper with > non-default options, > but since there are no options for "postgres_fdw", that is moot. > > So don't do that. > > The hierarchy of objects is as follows: > > - The foreign data wrapper encapsulates the code required to access the > foreign > data source. You need only one per database; no need to create a new > one. > > - The foreign server encapsulates the connection string to access a > remote > PostgreSQL database. Define one per remote database you want to > access. > > - The user mapping encapsulates the credentials for a user to access a > foreign server. > Create one per user and foreign server (or a single one for PUBLIC = > everybody). > > - The foreign table describes how a remote table is mapped locally. > Define one per table that interests you. > > Yours, > Laurenz Albe
pgsql-general by date: