From: Tom Lane Date: Wed, 29 Mar 2006 15:15:43 +0000 (+0000) Subject: TablespaceCreateDbspace should function normally even on platforms that do not X-Git-Tag: REL9_0_0~8185 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2154e1c11e4fbb6b41f6db1ea7c49e25f98d0df7;p=pg-rex%2Fsyncrep.git TablespaceCreateDbspace should function normally even on platforms that do not have symlinks (ie, Windows). Although it'll never be called on to do anything useful during normal operation on such a platform, it's still needed to re-create dropped directories during WAL replay. --- diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c index 026bbf5169..84b8f02736 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.32 2006/03/24 04:32:13 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.33 2006/03/29 15:15:43 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -81,9 +81,6 @@ static void set_short_version(const char *path); * object in the tablespace, create the subdirectory. If the subdirectory * already exists, just fall through quietly. * - * If tablespaces are not supported, this is just a no-op; CREATE DATABASE - * is expected to create the default subdirectory for the database. - * * isRedo indicates that we are creating an object during WAL replay. * In this case we will cope with the possibility of the tablespace * directory not being there either --- this could happen if we are @@ -91,11 +88,14 @@ static void set_short_version(const char *path); * We handle this by making a directory in the place where the tablespace * symlink would normally be. This isn't an exact replay of course, but * it's the best we can do given the available information. + * + * If tablespaces are not supported, you might think this could be a no-op, + * but you'd be wrong: we still need it in case we have to re-create a + * database subdirectory (of $PGDATA/base) during WAL replay. */ void TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo) { -#ifdef HAVE_SYMLINK struct stat st; char *dir; @@ -178,7 +178,6 @@ TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo) } pfree(dir); -#endif /* HAVE_SYMLINK */ } /*