diff options
author | Bruce Momjian <bruce@momjian.us> | 1999-05-17 18:24:48 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1999-05-17 18:24:48 +0000 |
commit | c2b75c83f341cf06f6594235b40281ec3956538e (patch) | |
tree | b84c6e4e8061372c98b61146c873e8770c101132 /src | |
parent | 19c4e862d41f9d520652d0b0e7ae595a85b5f90b (diff) | |
download | postgresql-c2b75c83f341cf06f6594235b40281ec3956538e.tar.gz postgresql-c2b75c83f341cf06f6594235b40281ec3956538e.zip |
All works on linux now by my tests and regression(with patch below).
ALTER TABLE RENAME with extents.
Ole Gjerde
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/commands/rename.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/backend/commands/rename.c b/src/backend/commands/rename.c index 2b77b250a12..457facdd8fc 100644 --- a/src/backend/commands/rename.c +++ b/src/backend/commands/rename.c @@ -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); |