Remove some dead code for handling XLOG_DBASE_CREATE_OLD and
authorNeil Conway <neilc@samurai.com>
Fri, 8 Jul 2005 04:12:27 +0000 (04:12 +0000)
committerNeil Conway <neilc@samurai.com>
Fri, 8 Jul 2005 04:12:27 +0000 (04:12 +0000)
XLOG_DBASE_DROP_OLD WAL records -- these records are no longer created in
current sources. Adjust numbering of XLOG_DBASE_CREATE and XLOG_DBASE_DROP
and bump the catversion. Patch from Gavin Sherry, adjusted by Neil Conway.

src/backend/commands/dbcommands.c
src/include/catalog/catversion.h
src/include/commands/dbcommands.h

index 486afb2e21f5b392ac9753f791409229db1bffb5..7f6791abfd346af4ef975e2ea7519e72ac6f22ac 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.165 2005/07/07 20:39:58 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.166 2005/07/08 04:12:24 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1305,79 +1305,6 @@ dbase_redo(XLogRecPtr lsn, XLogRecord *record)
                    (errmsg("could not remove database directory \"%s\"",
                            dst_path)));
    }
-   else if (info == XLOG_DBASE_CREATE_OLD)
-   {
-       xl_dbase_create_rec_old *xlrec = (xl_dbase_create_rec_old *) XLogRecGetData(record);
-       char       *dst_path = xlrec->src_path + strlen(xlrec->src_path) + 1;
-       struct stat st;
-
-#ifndef WIN32
-       char        buf[2 * MAXPGPATH + 100];
-#endif
-
-       /*
-        * Our theory for replaying a CREATE is to forcibly drop the
-        * target subdirectory if present, then re-copy the source data.
-        * This may be more work than needed, but it is simple to
-        * implement.
-        */
-       if (stat(dst_path, &st) == 0 && S_ISDIR(st.st_mode))
-       {
-           if (!rmtree(dst_path, true))
-               ereport(WARNING,
-                   (errmsg("could not remove database directory \"%s\"",
-                           dst_path)));
-       }
-
-       /*
-        * Force dirty buffers out to disk, to ensure source database is
-        * up-to-date for the copy.  (We really only need to flush buffers for
-        * the source database, but bufmgr.c provides no API for that.)
-        */
-       BufferSync();
-
-#ifndef WIN32
-
-       /*
-        * Copy this subdirectory to the new location
-        *
-        * XXX use of cp really makes this code pretty grotty, particularly
-        * with respect to lack of ability to report errors well.  Someday
-        * rewrite to do it for ourselves.
-        */
-
-       /* We might need to use cp -R one day for portability */
-       snprintf(buf, sizeof(buf), "cp -r '%s' '%s'",
-                xlrec->src_path, dst_path);
-       if (system(buf) != 0)
-           ereport(ERROR,
-                   (errmsg("could not initialize database directory"),
-                    errdetail("Failing system command was: %s", buf),
-                    errhint("Look in the postmaster's stderr log for more information.")));
-#else                          /* WIN32 */
-       if (copydir(xlrec->src_path, dst_path) != 0)
-       {
-           /* copydir should already have given details of its troubles */
-           ereport(ERROR,
-                   (errmsg("could not initialize database directory")));
-       }
-#endif   /* WIN32 */
-   }
-   else if (info == XLOG_DBASE_DROP_OLD)
-   {
-       xl_dbase_drop_rec_old *xlrec = (xl_dbase_drop_rec_old *) XLogRecGetData(record);
-
-       /*
-        * Drop pages for this database that are in the shared buffer
-        * cache
-        */
-       DropBuffers(xlrec->db_id);
-
-       if (!rmtree(xlrec->dir_path, true))
-           ereport(WARNING,
-                   (errmsg("could not remove database directory \"%s\"",
-                           xlrec->dir_path)));
-   }
    else
        elog(PANIC, "dbase_redo: unknown op code %u", info);
 }
@@ -1402,21 +1329,6 @@ dbase_desc(char *buf, uint8 xl_info, char *rec)
        sprintf(buf + strlen(buf), "drop db: dir %u/%u",
                xlrec->db_id, xlrec->tablespace_id);
    }
-   else if (info == XLOG_DBASE_CREATE_OLD)
-   {
-       xl_dbase_create_rec_old *xlrec = (xl_dbase_create_rec_old *) rec;
-       char       *dst_path = xlrec->src_path + strlen(xlrec->src_path) + 1;
-
-       sprintf(buf + strlen(buf), "create db: %u copy \"%s\" to \"%s\"",
-               xlrec->db_id, xlrec->src_path, dst_path);
-   }
-   else if (info == XLOG_DBASE_DROP_OLD)
-   {
-       xl_dbase_drop_rec_old *xlrec = (xl_dbase_drop_rec_old *) rec;
-
-       sprintf(buf + strlen(buf), "drop db: %u directory: \"%s\"",
-               xlrec->db_id, xlrec->dir_path);
-   }
    else
        strcat(buf, "UNKNOWN");
 }
index 9a9266ff41d157016c7f14ee1540b287d7cd105c..5dc1b21a10737b0b46f5be680be971a8fc4f073a 100644 (file)
@@ -37,7 +37,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.285 2005/07/07 20:39:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.286 2005/07/08 04:12:26 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,6 +53,6 @@
  */
 
 /*                         yyyymmddN */
-#define CATALOG_VERSION_NO 200507071
+#define CATALOG_VERSION_NO 200507081
 
 #endif
index 1a4fd5123c29cc8cd8ba32b390e17f2793160fdb..8020fc7e4e8f343aede119fba32275598b40bf16 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/dbcommands.h,v 1.39 2005/06/28 05:09:12 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/dbcommands.h,v 1.40 2005/07/08 04:12:27 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "nodes/parsenodes.h"
 
 /* XLOG stuff */
-#define XLOG_DBASE_CREATE_OLD  0x00
-#define XLOG_DBASE_DROP_OLD        0x10
-#define XLOG_DBASE_CREATE      0x20
-#define XLOG_DBASE_DROP            0x30
-
-/*
- * Note: "old" versions are deprecated and need not be supported beyond 8.0.
- * Not only are they relatively bulky, but they do the Wrong Thing when a
- * WAL log is replayed in a data area that's at a different absolute path
- * than the original.
- */
+#define XLOG_DBASE_CREATE      0x00
+#define XLOG_DBASE_DROP            0x10
 
 typedef struct xl_dbase_create_rec_old
 {