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