7
7
*
8
8
*
9
9
* IDENTIFICATION
10
- * $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.23 1999/05/10 00:44:59 momjian Exp $
10
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.24 1999/05/17 18:24:48 momjian Exp $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
@@ -201,10 +201,13 @@ renameatt(char *relname,
201
201
void
202
202
renamerel(char *oldrelname, char *newrelname)
203
203
{
204
+ int i;
204
205
Relation relrelation; /* for RELATION relation */
205
206
HeapTuple oldreltup;
206
207
char oldpath[MAXPGPATH],
207
- newpath[MAXPGPATH];
208
+ newpath[MAXPGPATH],
209
+ toldpath[MAXPGPATH + 10],
210
+ tnewpath[MAXPGPATH + 10];
208
211
Relation irelations[Num_pg_class_indices];
209
212
210
213
if (!allowSystemTableMods && IsSystemRelationName(oldrelname))
@@ -230,6 +233,14 @@ renamerel(char *oldrelname, char *newrelname)
230
233
if (rename(oldpath, newpath) < 0)
231
234
elog(ERROR, "renamerel: unable to rename file: %s", oldpath);
232
235
236
+ for (i = 1;; i++)
237
+ {
238
+ sprintf(toldpath, "%s.%d", oldpath, i);
239
+ sprintf(tnewpath, "%s.%d", newpath, i);
240
+ if(rename(toldpath, tnewpath) < 0)
241
+ break;
242
+ }
243
+
233
244
StrNCpy((((Form_pg_class) GETSTRUCT(oldreltup))->relname.data),
234
245
newrelname, NAMEDATALEN);
235
246
0 commit comments