Tom Lane wrote:
Andrew Dunstan <[EMAIL PROTECTED]> writes:
Before I tried anything like that I tried one more thing. I disabled the background writer and the problem stopped. So now we know the "culprit".
Okay. So what that says is that win32_open's claim to allow unlinking
an open file is a lie; or at least, it does not work the way the
equivalent facility on Unix does. It sounds to me like Windows is
simply marking the open file as to be deleted on last close --- the
directory entry remains present and so the directory can't be dropped
either.
Looks that way to me too.
One relatively low-impact workaround would be to force a checkpoint (on Windows only) during DROP DATABASE, just before we actually fire the rmtree() operation. The bgwriter is already coded to close all its open files after a checkpoint ...
Works for me. If someone gives me a patch I'll be happy to test it.
I did wonder if there should be a call that instead of forcing a flush could tell bgwriter just to forget about the file(s) because we're discarding them. But that was just idle speculation - I haven't looked at bgwriter at all.
cheers
andrew
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])