aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-05-17 18:24:48 +0000
committerBruce Momjian <bruce@momjian.us>1999-05-17 18:24:48 +0000
commitc2b75c83f341cf06f6594235b40281ec3956538e (patch)
treeb84c6e4e8061372c98b61146c873e8770c101132 /src
parent19c4e862d41f9d520652d0b0e7ae595a85b5f90b (diff)
downloadpostgresql-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.c15
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);