From 3661d1d6e0342332c98c7a7ad5849e7e963f9615 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 24 May 2004 02:47:47 +0000
Subject: [PATCH] This patch fixes the find_my_exec code for pgstat backends.
 Required for TZ stuff (and possibly others) to work in the pgstat backends.

Magnus Hagander
---
 src/backend/main/main.c         | 12 +++++-------
 src/backend/postmaster/pgstat.c | 14 +++++++++++---
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/backend/main/main.c b/src/backend/main/main.c
index 535da36b919..9216c2c4be9 100644
--- a/src/backend/main/main.c
+++ b/src/backend/main/main.c
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/main/main.c,v 1.80 2004/05/19 18:58:44 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/main/main.c,v 1.81 2004/05/24 02:47:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -278,22 +278,20 @@ main(int argc, char *argv[])
 	}
 
 	/*
-	 * If the first argument is "-statBuf", then invoke pgstat_main. Note
-	 * we remove "-statBuf" from the arguments passed on to pgstat_main.
+	 * If the first argument is "-statBuf", then invoke pgstat_main. 
 	 */
 	if (argc > 1 && strcmp(argv[1], "-statBuf") == 0)
 	{
-		pgstat_main(argc - 2, argv + 2);
+		pgstat_main(argc , argv);
 		exit(0);
 	}
 
 	/*
-	 * If the first argument is "-statCol", then invoke pgstat_mainChild. Note
-	 * we remove "-statCol" from the arguments passed on to pgstat_mainChild.
+	 * If the first argument is "-statCol", then invoke pgstat_mainChild. 
 	 */
 	if (argc > 1 && strcmp(argv[1], "-statCol") == 0)
 	{
-		pgstat_mainChild(argc - 2, argv + 2);
+		pgstat_mainChild(argc, argv);
 		exit(0);
 	}
 #endif
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index c102cdd7aa2..70924eb676e 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -13,7 +13,7 @@
  *
  *	Copyright (c) 2001-2003, PostgreSQL Global Development Group
  *
- *	$PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.70 2004/05/18 03:36:30 momjian Exp $
+ *	$PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.71 2004/05/24 02:47:47 momjian Exp $
  * ----------
  */
 #include "postgres.h"
@@ -520,8 +520,16 @@ pgstat_forkexec(STATS_PROCESS_TYPE procType)
 static void
 pgstat_parseArgs(PGSTAT_FORK_ARGS)
 {
-	Assert(argc == 12);
-	argc = 0;
+	Assert(argc == 14);
+
+	if (find_my_exec(argv[0], my_exec_path) < 0)
+		elog(FATAL,
+				gettext("%s: could not locate my own executable path"),
+						argv[0]);
+	
+	get_pkglib_path(my_exec_path, pkglib_path);
+
+	argc = 2;
 	pgStatSock 		= atoi(argv[argc++]);
 	pgStatPmPipe[0]	= atoi(argv[argc++]);
 	pgStatPmPipe[1]	= atoi(argv[argc++]);
-- 
GitLab