All works on linux now by my tests and regression(with patch below).
authorBruce Momjian <bruce@momjian.us>
Mon, 17 May 1999 18:24:48 +0000 (18:24 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 17 May 1999 18:24:48 +0000 (18:24 +0000)
ALTER TABLE RENAME with extents.
Ole Gjerde

src/backend/commands/rename.c

index 2b77b250a1220af1a4185b55d96bdbc2258094e2..457facdd8fcdb4847824437c1427ec7aa4379ce2 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.23 1999/05/10 00:44:59 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.24 1999/05/17 18:24:48 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -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);