From: Bruce Momjian Date: Mon, 17 May 1999 18:24:48 +0000 (+0000) Subject: All works on linux now by my tests and regression(with patch below). X-Git-Url: http://waps.l3s.uni-hannover.de/gitweb/?a=commitdiff_plain;h=54c826ab700311ae719f8ba3ba4d645ec716103c;p=users%2Fbernd%2Fpostgres.git All works on linux now by my tests and regression(with patch below). ALTER TABLE RENAME with extents. Ole Gjerde --- diff --git a/src/backend/commands/rename.c b/src/backend/commands/rename.c index 6e6a172747..ed24aa411a 100644 --- a/src/backend/commands/rename.c +++ b/src/backend/commands/rename.c @@ -201,10 +201,13 @@ renameatt(char *relname, void renamerel(char *oldrelname, char *newrelname) { + int i; Relation relrelation; /* for RELATION relation */ HeapTuple oldreltup; char oldpath[MAXPGPATH], - newpath[MAXPGPATH]; + newpath[MAXPGPATH], + toldpath[MAXPGPATH + 10], + tnewpath[MAXPGPATH + 10]; Relation irelations[Num_pg_class_indices]; if (!allowSystemTableMods && IsSystemRelationName(oldrelname)) @@ -230,6 +233,14 @@ renamerel(char *oldrelname, char *newrelname) if (rename(oldpath, newpath) < 0) elog(ERROR, "renamerel: unable to rename file: %s", oldpath); + for (i = 1;; i++) + { + sprintf(toldpath, "%s.%d", oldpath, i); + sprintf(tnewpath, "%s.%d", newpath, i); + if(rename(toldpath, tnewpath) < 0) + break; + } + StrNCpy((((Form_pg_class) GETSTRUCT(oldreltup))->relname.data), newrelname, NAMEDATALEN);