From 36d3afd2d42da4c81c22b8cad3e8312368b9823e Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Thu, 13 May 2010 22:51:00 +0000
Subject: [PATCH] Remove all mentions of EnterpriseDB Advanced Server from
 pg_upgrade; EDB must maintain their own patch set for this.

---
 contrib/pg_upgrade/check.c       |  6 ++---
 contrib/pg_upgrade/controldata.c | 21 ++---------------
 contrib/pg_upgrade/exec.c        | 40 ++++++--------------------------
 contrib/pg_upgrade/file.c        |  4 ----
 contrib/pg_upgrade/info.c        | 35 +---------------------------
 contrib/pg_upgrade/pg_upgrade.c  | 12 +++++-----
 contrib/pg_upgrade/pg_upgrade.h  |  4 ----
 contrib/pg_upgrade/relfilenode.c |  4 ----
 doc/src/sgml/pgupgrade.sgml      | 26 +--------------------
 9 files changed, 20 insertions(+), 132 deletions(-)

diff --git a/contrib/pg_upgrade/check.c b/contrib/pg_upgrade/check.c
index b3094534c96..31f12fbab2c 100644
--- a/contrib/pg_upgrade/check.c
+++ b/contrib/pg_upgrade/check.c
@@ -149,10 +149,10 @@ issue_warnings(migratorContext *ctx, char *sequence_script_file_name)
 		{
 			prep_status(ctx, "Adjusting sequences");
 			exec_prog(ctx, true,
-					SYSTEMQUOTE "\"%s/%s\" --set ON_ERROR_STOP=on --port %d "
+					SYSTEMQUOTE "\"%s/psql\" --set ON_ERROR_STOP=on --port %d "
 					  "-f \"%s\" --dbname template1 >> \"%s\"" SYSTEMQUOTE,
-					  ctx->new.bindir, ctx->new.psql_exe, ctx->new.port,
-					  sequence_script_file_name, ctx->logfile);
+					  ctx->new.bindir, ctx->new.port, sequence_script_file_name,
+					  ctx->logfile);
 			unlink(sequence_script_file_name);
 			pg_free(sequence_script_file_name);
 			check_ok(ctx);
diff --git a/contrib/pg_upgrade/controldata.c b/contrib/pg_upgrade/controldata.c
index b6cc457a022..ccf7a36c9da 100644
--- a/contrib/pg_upgrade/controldata.c
+++ b/contrib/pg_upgrade/controldata.c
@@ -9,10 +9,6 @@
 #include <ctype.h>
 #include <stdlib.h>
 
-#ifdef EDB_NATIVE_LANG
-#include "access/tuptoaster.h"
-#endif
-
 
 /*
  * get_control_data()
@@ -88,15 +84,6 @@ get_control_data(migratorContext *ctx, ClusterInfo *cluster, bool live_check)
 		got_float8_pass_by_value = true;
 	}
 
-#ifdef EDB_NATIVE_LANG
-	/* EDB AS 8.3 is an 8.2 code base */
-	if (cluster->is_edb_as && GET_MAJOR_VERSION(cluster->major_version) <= 803)
-	{
-		cluster->controldata.toast = TOAST_MAX_CHUNK_SIZE;
-		got_toast = true;
-	}
-#endif
-
 	/* we have the result of cmd in "output". so parse it line by line now */
 	while (fgets(bufin, sizeof(bufin), output))
 	{
@@ -140,9 +127,7 @@ get_control_data(migratorContext *ctx, ClusterInfo *cluster, bool live_check)
 			p++;				/* removing ':' char */
 			cluster->controldata.cat_ver = (uint32) atol(p);
 		}
-		else if ((p = strstr(bufin, "First log file ID after reset:")) != NULL ||
-				 (cluster->is_edb_as && GET_MAJOR_VERSION(cluster->major_version) <= 803 &&
-				  (p = strstr(bufin, "Current log file ID:")) != NULL))
+		else if ((p = strstr(bufin, "First log file ID after reset:")) != NULL)
 		{
 			p = strchr(p, ':');
 
@@ -153,9 +138,7 @@ get_control_data(migratorContext *ctx, ClusterInfo *cluster, bool live_check)
 			cluster->controldata.logid = (uint32) atol(p);
 			got_log_id = true;
 		}
-		else if ((p = strstr(bufin, "First log file segment after reset:")) != NULL ||
-				 (cluster->is_edb_as && GET_MAJOR_VERSION(cluster->major_version) <= 803 &&
-				  (p = strstr(bufin, "Next log file segment:")) != NULL))
+		else if ((p = strstr(bufin, "First log file segment after reset:")) != NULL)
 		{
 			p = strchr(p, ':');
 
diff --git a/contrib/pg_upgrade/exec.c b/contrib/pg_upgrade/exec.c
index d8661a2d381..2543763cbc4 100644
--- a/contrib/pg_upgrade/exec.c
+++ b/contrib/pg_upgrade/exec.c
@@ -11,8 +11,7 @@
 
 
 static void checkBinDir(migratorContext *ctx, ClusterInfo *cluster);
-static int check_exec(migratorContext *ctx, const char *dir, const char *cmdName,
-		   const char *alternative);
+static int check_exec(migratorContext *ctx, const char *dir, const char *cmdName);
 static const char *validate_exec(const char *path);
 static int	check_data_dir(migratorContext *ctx, const char *pg_data);
 
@@ -89,22 +88,10 @@ verify_directories(migratorContext *ctx)
 static void
 checkBinDir(migratorContext *ctx, ClusterInfo *cluster)
 {
-	check_exec(ctx, cluster->bindir, "postgres", "edb-postgres");
-	check_exec(ctx, cluster->bindir, "pg_ctl", NULL);
-	check_exec(ctx, cluster->bindir, "pg_dumpall", NULL);
-
-#ifdef EDB_NATIVE_LANG
-	/* check for edb-psql first because we need to detect EDB AS */
-	if (check_exec(ctx, cluster->bindir, "edb-psql", "psql") == 1)
-	{
-		cluster->psql_exe = "edb-psql";
-		cluster->is_edb_as = true;
-	}
-	else
-#else
-	if (check_exec(ctx, cluster->bindir, "psql", NULL) == 1)
-#endif
-		cluster->psql_exe = "psql";
+	check_exec(ctx, cluster->bindir, "postgres");
+	check_exec(ctx, cluster->bindir, "psql");
+	check_exec(ctx, cluster->bindir, "pg_ctl");
+	check_exec(ctx, cluster->bindir, "pg_dumpall");
 }
 
 
@@ -146,8 +133,7 @@ is_server_running(migratorContext *ctx, const char *datadir)
  *	a valid executable, this function returns 0 to indicated failure.
  */
 static int
-check_exec(migratorContext *ctx, const char *dir, const char *cmdName,
-		   const char *alternative)
+check_exec(migratorContext *ctx, const char *dir, const char *cmdName)
 {
 	char		path[MAXPGPATH];
 	const char *errMsg;
@@ -155,21 +141,9 @@ check_exec(migratorContext *ctx, const char *dir, const char *cmdName,
 	snprintf(path, sizeof(path), "%s%c%s", dir, pathSeparator, cmdName);
 
 	if ((errMsg = validate_exec(path)) == NULL)
-	{
 		return 1;				/* 1 -> first alternative OK */
-	}
 	else
-	{
-		if (alternative)
-		{
-			report_status(ctx, PG_WARNING, "check for %s warning:  %s",
-						  cmdName, errMsg);
-			if (check_exec(ctx, dir, alternative, NULL) == 1)
-				return 2;		/* 2 -> second alternative OK */
-		}
-		else
-			pg_log(ctx, PG_FATAL, "check for %s failed - %s\n", cmdName, errMsg);
-	}
+		pg_log(ctx, PG_FATAL, "check for %s failed - %s\n", cmdName, errMsg);
 
 	return 0;					/* 0 -> neither alternative is acceptable */
 }
diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
index 80645bdf542..3ffea54ef26 100644
--- a/contrib/pg_upgrade/file.c
+++ b/contrib/pg_upgrade/file.c
@@ -9,10 +9,6 @@
 #include <sys/types.h>
 #include <fcntl.h>
 
-#ifdef EDB_NATIVE_LANG
-#include <fcntl.h>
-#endif
-
 #ifdef WIN32
 #include <windows.h>
 #endif
diff --git a/contrib/pg_upgrade/info.c b/contrib/pg_upgrade/info.c
index 7280dcf3f01..2b0bba6170b 100644
--- a/contrib/pg_upgrade/info.c
+++ b/contrib/pg_upgrade/info.c
@@ -291,8 +291,6 @@ get_rel_infos(migratorContext *ctx, const DbInfo *dbinfo,
 			  RelInfoArr *relarr, Cluster whichCluster)
 {
 	PGconn	   *conn = connectToServer(ctx, dbinfo->db_name, whichCluster);
-	bool		is_edb_as = (whichCluster == CLUSTER_OLD) ?
-					ctx->old.is_edb_as : ctx->new.is_edb_as;
 	PGresult   *res;
 	RelInfo    *relinfos;
 	int			ntups;
@@ -341,38 +339,7 @@ get_rel_infos(migratorContext *ctx, const DbInfo *dbinfo,
 			 FirstNormalObjectId,
 	/* see the comment at the top of v8_3_create_sequence_script() */
 			 (GET_MAJOR_VERSION(ctx->old.major_version) <= 803) ?
-			 "" : " OR relkind = 'S'",
-
-	/*
-	 * EDB AS installs pgagent by default via initdb. We have to ignore it,
-	 * and not migrate any old table contents.
-	 */
-			 (is_edb_as && strcmp(dbinfo->db_name, "edb") == 0) ?
-			 " 	AND "
-			 "	n.nspname != 'pgagent' AND "
-	/* skip pgagent TOAST tables */
-			 "	c.oid NOT IN "
-			 "	( "
-			 "		SELECT c2.reltoastrelid "
-			 "		FROM pg_catalog.pg_class c2 JOIN "
-			 "				pg_catalog.pg_namespace n2 "
-			 "			ON c2.relnamespace = n2.oid "
-			 "		WHERE n2.nspname = 'pgagent' AND "
-			 "			  c2.reltoastrelid != 0 "
-			 "	) AND "
-	/* skip pgagent TOAST table indexes */
-			 "	c.oid NOT IN "
-			 "	( "
-			 "		SELECT c3.reltoastidxid "
-			 "		FROM pg_catalog.pg_class c2 JOIN "
-			 "				pg_catalog.pg_namespace n2 "
-			 "			ON c2.relnamespace = n2.oid JOIN "
-			 "				pg_catalog.pg_class c3 "
-			 "			ON c2.reltoastrelid = c3.oid "
-			 "		WHERE n2.nspname = 'pgagent' AND "
-			 "			  c2.reltoastrelid != 0 AND "
-			 "			  c3.reltoastidxid != 0 "
-			 "	) " : "");
+			 "" : " OR relkind = 'S'");
 
 	res = executeQueryOrDie(ctx, conn, query);
 
diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c
index 4067f4bd268..e35cd5a8943 100644
--- a/contrib/pg_upgrade/pg_upgrade.c
+++ b/contrib/pg_upgrade/pg_upgrade.c
@@ -196,10 +196,10 @@ prepare_new_databases(migratorContext *ctx)
 	 */
 	prep_status(ctx, "Creating databases in the new cluster");
 	exec_prog(ctx, true,
-			  SYSTEMQUOTE "\"%s/%s\" --set ON_ERROR_STOP=on --port %d "
+			  SYSTEMQUOTE "\"%s/psql\" --set ON_ERROR_STOP=on --port %d "
 			  "-f \"%s/%s\" --dbname template1 >> \"%s\"" SYSTEMQUOTE,
-			  ctx->new.bindir, ctx->new.psql_exe, ctx->new.port,
-			  ctx->output_dir, GLOBALS_DUMP_FILE, ctx->logfile);
+			  ctx->new.bindir, ctx->new.port, ctx->output_dir,
+			  GLOBALS_DUMP_FILE, ctx->logfile);
 	check_ok(ctx);
 
 	get_db_and_rel_infos(ctx, &ctx->new.dbarr, CLUSTER_NEW);
@@ -218,10 +218,10 @@ create_new_objects(migratorContext *ctx)
 
 	prep_status(ctx, "Restoring database schema to new cluster");
 	exec_prog(ctx, true,
-			  SYSTEMQUOTE "\"%s/%s\" --set ON_ERROR_STOP=on --port %d "
+			  SYSTEMQUOTE "\"%s/psql\" --set ON_ERROR_STOP=on --port %d "
 			  "-f \"%s/%s\" --dbname template1 >> \"%s\"" SYSTEMQUOTE,
-			  ctx->new.bindir, ctx->new.psql_exe, ctx->new.port,
-			  ctx->output_dir, DB_DUMP_FILE, ctx->logfile);
+			  ctx->new.bindir, ctx->new.port, ctx->output_dir,
+			  DB_DUMP_FILE, ctx->logfile);
 	check_ok(ctx);
 
 	/* regenerate now that we have db schemas */
diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h
index 0fa96542b9e..773ff6c88c2 100644
--- a/contrib/pg_upgrade/pg_upgrade.h
+++ b/contrib/pg_upgrade/pg_upgrade.h
@@ -200,15 +200,11 @@ typedef struct
 	DbInfoArr	dbarr;		/* dbinfos array */
 	char	   *pgdata;		/* pathname for cluster's $PGDATA directory */
 	char	   *bindir;		/* pathname for cluster's executable directory */
-	const char *psql_exe;	/* name of the psql command to execute
-							 * in the cluster */
 	unsigned short port;	/* port number where postmaster is waiting */
 	uint32		major_version;		/* PG_VERSION of cluster */
 	char	   *major_version_str;	/* string PG_VERSION of cluster */
 	Oid			pg_database_oid;		/* OID of pg_database relation */
 	char	   *libpath;	/* pathname for cluster's pkglibdir */
-	/* EDB AS is PG 8.2 with 8.3 enhancements backpatched. */
-	bool		is_edb_as;	/* EnterpriseDB's Postgres Plus Advanced Server? */
 	char	   *tablespace_suffix;	/* directory specification */
 } ClusterInfo;
 
diff --git a/contrib/pg_upgrade/relfilenode.c b/contrib/pg_upgrade/relfilenode.c
index 11bfadb1b22..d5a8dcb3cab 100644
--- a/contrib/pg_upgrade/relfilenode.c
+++ b/contrib/pg_upgrade/relfilenode.c
@@ -6,10 +6,6 @@
 
 #include "pg_upgrade.h"
 
-#ifdef EDB_NATIVE_LANG
-#include <fcntl.h>
-#endif
-
 #include "catalog/pg_class.h"
 #include "access/transam.h"
 
diff --git a/doc/src/sgml/pgupgrade.sgml b/doc/src/sgml/pgupgrade.sgml
index ed8e6dafeea..c6c4bd76222 100644
--- a/doc/src/sgml/pgupgrade.sgml
+++ b/doc/src/sgml/pgupgrade.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/pgupgrade.sgml,v 1.3 2010/05/13 15:03:24 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/pgupgrade.sgml,v 1.4 2010/05/13 22:51:00 momjian Exp $ -->
 
 <sect1 id="pgupgrade">
  <title>pg_upgrade</title>
@@ -23,11 +23,6 @@
    pg_upgrade supports upgrades from 8.3.X and later to the current
    major release of Postgres, including snapshot and alpha releases.
 
-<!--
-   pg_upgrade also supports upgrades from EnterpriseDB's Postgres Plus
-   Advanced Server.
--->
-
   </para>
 
  </sect2>
@@ -120,25 +115,6 @@ gmake prefix=/usr/local/pgsql.new install
      start the new cluster.
     </para>
  
-<!--
-    <para>
-     If migrating EnterpriseDB's Postgres Plus Advanced Server, you must:
-     <itemizedlist>
-      <listitem>
-       <para>
-        <emphasis>not</> install <literal>sample tables and procedures/functions</>
-        in the new server
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        delete the empty <literal>edb</> schema in the <literal>enterprisedb</> database
-       </para>
-      </listitem>
-     </itemizedlist>
-    </para>
--->
-
    </listitem>
  
    <listitem>
-- 
GitLab