diff -rpcd a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c *** a/src/backend/commands/tablespace.c 2014-02-03 09:17:02.000000000 +0900 --- b/src/backend/commands/tablespace.c 2014-02-04 09:05:50.000000000 +0900 *************** create_tablespace_directories(const char *** 621,633 **** --- 621,642 ---- } /* Remove old symlink in recovery, in case it points to the wrong place */ + /* On Windows, lstat() reports junction points as directories */ if (InRecovery) { + #ifdef WIN32 + if (rmdir(linkloc) < 0 && errno != ENOENT) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not remove directory \"%s\": %m", + linkloc))); + #else if (unlink(linkloc) < 0 && errno != ENOENT) ereport(ERROR, (errcode_for_file_access(), errmsg("could not remove symbolic link \"%s\": %m", linkloc))); + #endif } /*