Re: FDW: should GetFdwRoutine be called when drop table?

From: Andres Freund <andres(at)anarazel(dot)de>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Feng Tian <ftian(at)vitessedata(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: FDW: should GetFdwRoutine be called when drop table?
Date: 2016-02-19 19:33:27
Message-ID: 20160219193327.oqd2gvgc2rm3rnsk@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2016-02-19 14:18:19 -0500, Peter Eisentraut wrote:
> On 2/19/16 12:21 PM, Feng Tian wrote:
> > I have an fdw that each foreign table will acquire some persisted resource.
> > In my case, some files in file system. To drop the table cleanly, I
> > have written
> > an object_access_hook that remove those files. The hook is installed in
> > _PG_init.
> >
> > It all worked well except one case. Suppose a user login, the very first
> > command is
> > drop foreign table. Drop foreign table will not load the module, so
> > that the hook
> > is not installed and the files are not properly cleaned up.
>
> You could load your library with one of the *_library_preload settings
> to make sure the hook is always present.
>
> But foreign data wrappers are meant to be wrappers around data managed
> elsewhere, not their own storage managers (although that is clearly
> tempting), so there might well be other places where this breaks down.

Sounds like even a BEGIN;DROP TABLE foo;ROLLBACK; will break this
approach.

Andres

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2016-02-19 19:58:12 Re: Restructuring Paths to allow per-Path targetlist info
Previous Message Peter Eisentraut 2016-02-19 19:18:19 Re: FDW: should GetFdwRoutine be called when drop table?