mdcreate():
authorVadim B. Mikheev
Tue, 6 May 1997 02:03:20 +0000 (02:03 +0000)
committerVadim B. Mikheev
Tue, 6 May 1997 02:03:20 +0000 (02:03 +0000)
    fd = FileNameOpenFile(path, O_RDWR|O_CREAT|O_EXCL, 0600);

    /*
     *  If the file already exists and is empty, we pretend that the
     *  create succeeded.  During bootstrap processing, we skip that check,
     *  because pg_time, pg_variable, and pg_log get created before their
     *  .bki file entries are processed.
     *
>    *  As the result of this pretence it was possible to have in
>    *  pg_class > 1 records with the same relname. Actually, it
>    *  should be fixed in upper levels, too, but... -  vadim 05/06/97
>    */

src/backend/storage/smgr/md.c

index fdcefb78ad6fd7411476592d0eb14fc469e2d6de..81a46c7fedfa55a66371be6d78072f908048f830 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.11 1997/02/14 04:17:08 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.12 1997/05/06 02:03:20 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -99,7 +99,6 @@ int
 mdcreate(Relation reln)
 {
     int fd, vfd;
-    int tmp;
     char *path;
     extern bool IsBootstrapProcessingMode();
 
@@ -111,16 +110,19 @@ mdcreate(Relation reln)
      *  create succeeded.  During bootstrap processing, we skip that check,
      *  because pg_time, pg_variable, and pg_log get created before their
      *  .bki file entries are processed.
+     *
+     *  As the result of this pretence it was possible to have in
+     *  pg_class > 1 records with the same relname. Actually, it
+     *  should be fixed in upper levels, too, but... - vadim 05/06/97
      */
 
-    if (fd < 0) {
-   if ((fd = FileNameOpenFile(path, O_RDWR, 0600)) >= 0) {
-       if (!IsBootstrapProcessingMode() &&
-       FileRead(fd, (char *) &tmp, sizeof(tmp)) != 0) {
-       FileClose(fd);
-       return (-1);
-       }
-   }
+    if (fd < 0)
+    {
+   if ( !IsBootstrapProcessingMode() )
+       return (-1);
+   fd = FileNameOpenFile(path, O_RDWR, 0600);  /* Bootstrap */
+   if ( fd < 0 )
+       return (-1);
     }
 
     if (CurFd >= Nfds) {