diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index 0da15569f3644d01476c574353c87b58b7ed828d..ad7d6662ec9e615179f81c227aa1035fe1d405f1 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.66 2010/01/05 21:53:58 rhaas Exp $
+ *	  $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.67 2010/01/06 01:48:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -249,7 +249,7 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
 	 * '/<dboid>/<relid>.<nnn>'  (XXX but do we ever form the whole path
 	 * explicitly?	This may be overly conservative.)
 	 */
-	if (strlen(location) >= (MAXPGPATH - 1 - 10 - 1 - 10 - 1 - 10))
+	if (strlen(location) >= (MAXPGPATH - 1 - OIDCHARS - 1 - OIDCHARS - 1 - OIDCHARS))
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
 				 errmsg("tablespace location \"%s\" is too long",
@@ -337,7 +337,7 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
 	/*
 	 * All seems well, create the symlink
 	 */
-	linkloc = (char *) palloc(10 + 10 + 1);
+	linkloc = (char *) palloc(OIDCHARS + OIDCHARS + 1);
 	sprintf(linkloc, "pg_tblspc/%u", tablespaceoid);
 
 	if (symlink(location, linkloc) < 0)
@@ -553,7 +553,7 @@ remove_tablespace_directories(Oid tablespaceoid, bool redo)
 	char	   *subfile;
 	struct stat st;
 
-	location = (char *) palloc(10 + 10 + 1);
+	location = (char *) palloc(OIDCHARS + OIDCHARS + 1);
 	sprintf(location, "pg_tblspc/%u", tablespaceoid);
 
 	/*
@@ -1373,7 +1373,7 @@ tblspc_redo(XLogRecPtr lsn, XLogRecord *record)
 		set_short_version(location);
 
 		/* Create the symlink if not already present */
-		linkloc = (char *) palloc(10 + 10 + 1);
+		linkloc = (char *) palloc(OIDCHARS + OIDCHARS + 1);
 		sprintf(linkloc, "pg_tblspc/%u", xlrec->ts_id);
 
 		if (symlink(location, linkloc) < 0)