diff --git a/src/backend/main/main.c b/src/backend/main/main.c index 535da36b919347f1e571879f3cd59d3a7b4991a4..9216c2c4be9ab9c636a5aa2a28a29248ee3bbfc9 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 c102cdd7aa2783e46481b9eabf16a649a06f4b7e..70924eb676e3c696e036baa3cd6970041530e0d6 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++]);