Re: [HACKERS] v6.5 release ToDo - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [HACKERS] v6.5 release ToDo
Date
Msg-id 199905171828.OAA24589@candle.pha.pa.us
Whole thread Raw
In response to Re: [HACKERS] v6.5 release ToDo  (Ole Gjerde <gjerde@icebox.org>)
List pgsql-hackers
> On Sat, 15 May 1999, Bruce Momjian wrote:
> > I believe also we have:
> >     DROP TABLE/RENAME TABLE doesn't remove extended files, *.1, *.2
> > as an open item.  Do you see these problems there?
> 
> DROP TABLE worked, ALTER TABLE didn't.
> 
> CREATE TABLE
> DROP TABLE
> CREATE INDEX
> DROP INDEX
> ALTER TABLE old RENAME TO new
> 
> All works on linux now by my tests and regression(with patch below).

Applied.


> 
> Perhaps a mdrename() should be created?  Or is something like this good
> enough?

I think this is good enough for now.  Do people want an mdrename?

> 
> Another thing.  Should error messages from file related(or all system
> calls) use strerror() to print out errno?
> 


Seems like in the code you have, you just keep renaming until you can't
find any more files, so printing out any errno would be a problem,
right?

I assume you are taling about the initial rename.  Not sure if strerror
would help.  We really try and insulate the user from knowing how we are
doing the SQL we do, so it is possible it may be confusing.  However, it
may be very helpful too.  Not sure.  Comments?


> Ole Gjerde
> 
> --- src/backend/commands/rename.c    1999/05/10 00:44:59    1.23
> +++ src/backend/commands/rename.c    1999/05/15 23:42:49
> @@ -201,10 +201,13 @@
>  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))
> @@ -229,6 +232,14 @@
>      strcpy(newpath, relpath(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);
> 
> 
> 


--  Bruce Momjian                        |  http://www.op.net/~candle maillist@candle.pha.pa.us            |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Misleading Error Message
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] DROP TABLE leaks file descriptors