From 13f41aa90b382a43f3e4b10562a2860535e41db5 Mon Sep 17 00:00:00 2001
From: "Vadim B. Mikheev" <vadim4o@yahoo.com>
Date: Tue, 6 May 1997 02:03:20 +0000
Subject: [PATCH] mdcreate():     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 | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index fdcefb78ad6..81a46c7fedf 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -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) {
-- 
GitLab