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  (Laurenz Albe <laurenz.albe@cybertec.at>)
Re: Foreign Data Wrapper Handler  (Adrian Klaver <adrian.klaver@aklaver.com>)
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:

Previous
From: Michael Lewis
Date:
Subject: Re: Temporary tables usage in functions
Next
From: Laurenz Albe
Date:
Subject: Re: Foreign Data Wrapper Handler