Thread: A few questions about foreign tables

A few questions about foreign tables

From
Marcin Borkowski
Date:
Hello,

I want to set up a few foreign tables (to access tables from one
PostgreSQL database in another one).  However, I want to do it
"properly", using a database migration tool, so I need to have a "down"
migration to revert to the previous state.

How to revert the effect of "import foreign schema"?  Is just dropping
the imported tables enough?

Also, how can I check the definitions (i.e., what tables on the server
they correspond to) of existing foreign tables?

(May I ask to be cc'd since I'm not subscribed to the list?)

TIA,

-- 
Marcin Borkowski
http://mbork.pl



Re: A few questions about foreign tables

From
Laurenz Albe
Date:
On Wed, 2023-10-18 at 10:24 +0200, Marcin Borkowski wrote:
> How to revert the effect of "import foreign schema"?  Is just dropping
> the imported tables enough?

Running DROP FOREIGN TABLE ... for all imported tables is enough.

> Also, how can I check the definitions (i.e., what tables on the server
> they correspond to) of existing foreign tables?

\d+ <table name>

> (May I ask to be cc'd since I'm not subscribed to the list?)

But please reply to the list.

Yours,
Laurenz Albe



Re: A few questions about foreign tables

From
Ron
Date:
And SELECT relnamespace::regnamespace::text, relname FROM pg_class WHERE 
relkind='f'; tells you all of the foreign tables.

Thus, this (untested) query generate all of the DROP FOREIGN TABLE statements:
SELECT format('DROP FOREIGN TABLE IF EXISTS %I.%I RESTRICT;'
               , relnamespace::regnamespace::text, relname)
FROM pg_class WHERE relkind='f'
ORDER BY relkind;

On 10/18/23 10:56, Laurenz Albe wrote:
> On Wed, 2023-10-18 at 10:24 +0200, Marcin Borkowski wrote:
>> How to revert the effect of "import foreign schema"?  Is just dropping
>> the imported tables enough?
> Running DROP FOREIGN TABLE ... for all imported tables is enough.
>
>> Also, how can I check the definitions (i.e., what tables on the server
>> they correspond to) of existing foreign tables?
> \d+ <table name>
>
>> (May I ask to be cc'd since I'm not subscribed to the list?)
> But please reply to the list.
>
> Yours,
> Laurenz Albe
>
>

-- 
Born in Arizona, moved to Babylonia.



Re: A few questions about foreign tables

From
Marcin Borkowski
Date:
On 2023-10-18, at 17:56, Laurenz Albe <laurenz.albe@cybertec.at> wrote:

> On Wed, 2023-10-18 at 10:24 +0200, Marcin Borkowski wrote:
>> How to revert the effect of "import foreign schema"? Is just dropping
>> the imported tables enough?
>
> Running DROP FOREIGN TABLE ... for all imported tables is enough.
>
>> Also, how can I check the definitions (i.e., what tables on the server
>> they correspond to) of existing foreign tables?
>
> \d+ <table name>

Thanks.

>> (May I ask to be cc'd since I'm not subscribed to the list?)
>
> But please reply to the list.

Of course.

-- 
Marcin Borkowski
http://mbork.pl



Re: A few questions about foreign tables

From
Marcin Borkowski
Date:
On 2023-10-18, at 18:14, Ron <ronljohnsonjr@gmail.com> wrote:

> And SELECT relnamespace::regnamespace::text, relname FROM pg_class
> WHERE relkind='f'; tells you all of the foreign tables.
>
> Thus, this (untested) query generate all of the DROP FOREIGN TABLE statements:
> SELECT format('DROP FOREIGN TABLE IF EXISTS %I.%I RESTRICT;'
>  , relnamespace::regnamespace::text, relname)
> FROM pg_class WHERE relkind='f'
> ORDER BY relkind;

Thanks, though happily I only have about a dozen of them, so I could
create these by hand (well, actually by some automation features of my
text editor).

Best,

-- 
Marcin Borkowski
http://mbork.pl