Heikki Linnakangas <heikki.linnakan...@enterprisedb.com> writes: > Here's a patch implementing that, and changing pgrename() to check for > ERROR_SHARING_VIOLATION and ERROR_LOCK_VIOLATION like pgwin32_open() > does, instead of ERROR_ACCESS_DENIED.
This looks sane in a quick once-over, though I haven't tested it. One tiny stylistic suggestion: if (err != ERROR_SHARING_VIOLATION && err != ERROR_LOCK_VIOLATION) #else if (errno != EACCES) #endif return -1; if (++loops > 300) /* time out after 30 sec */ return -1; This is overly cute and will probably confuse both pgindent and ordinary editors. It's worth one extra line to keep each part of the #if syntactically independent, ie if (err != ERROR_SHARING_VIOLATION && err != ERROR_LOCK_VIOLATION) return -1; #else if (errno != EACCES) return -1; #endif if (++loops > 300) /* time out after 30 sec */ return -1; > I wonder if we should reduce the timeout in pgrename(). It's 30 s at the > moment, but apparently it hasn't been working correctly, failing > immediately instead if the file is locked. I have a vague recollection that there was a specific reason for having such a long timeout --- you might want to check the archives to see the discussion before that code got committed. However, if nothing turns up, I wouldn't object to reducing it to 5 or 10 sec. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers