> OK, in pgsql/src/backend/command/copy.c, you should see a function call
> to FreeFile(). That is what is supposed to be called to free the open
> file. AllocateFile opens the file a few lines above it, in either read
> or write mode.
>
> If you can, can you put a little printf statement just before the
> FreeFile, and see if it is getting called. You have to look in the
> postmaster log file to see the output of the printf(). If it is getting
> called, I have no idea why it would still be holding the file
> descriptor. If it is not calling that function, I am confused because I
> can't see how it could get out of that function without calling it.
I'm willing to have a look at this in a few weeks, but I don't have time
to do it now. I'll get back to you when I've got some additional info.
--
Greg Black <gjb@acm.org>