Re: [HACKERS] Odd problem with read_pg_options ...

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] Odd problem with read_pg_options ...
Дата
Msg-id 199810160605.CAA00813@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] Odd problem with read_pg_options ...  (Massimo Dal Zotto <dz@cs.unitn.it>)
Список pgsql-hackers
> The problem is that read_pg_options needs DataDir to read its file but
> DataDir is set after read_pg_options if postgres is called interactively.
> If postgres is forked by postgres DataDir is read from the PGDATA enviromnent
> variable set by the postmaster and this explains while the bug disappears.
> I have written this patch but I don't like it. Any better idea?

I have applied it.  You can improve it later, if you wish.

>
> *** src/backend/utils/init/globals.c.orig    Thu Oct 15 00:13:03 1998
> --- src/backend/utils/init/globals.c    Thu Oct 15 00:13:07 1998
> ***************
> *** 46,52 ****
>   struct Port *MyProcPort;
>   long        MyCancelKey;
>
> ! char       *DataDir;
>
>    /*
>     * The PGDATA directory user says to use, or defaults to via environment
> --- 46,52 ----
>   struct Port *MyProcPort;
>   long        MyCancelKey;
>
> ! char       *DataDir = NULL;
>
>    /*
>     * The PGDATA directory user says to use, or defaults to via environment
> *** src/backend/utils/misc/trace.c.orig    Thu Sep  3 09:00:39 1998
> --- src/backend/utils/misc/trace.c    Thu Oct 15 00:18:49 1998
> ***************
> *** 343,348 ****
> --- 343,353 ----
>       char       *s,
>                  *p;
>
> +     if (!DataDir) {
> +         fprintf(stderr, "read_pg_options: DataDir not defined\n");
> +         return;
> +     }
> +
>       sprintf(buffer, "%s/%s", DataDir, "pg_options");
>       if ((fd = open(buffer, O_RDONLY)) < 0)
>           return;
> *** src/backend/tcop/postgres.c.orig    Tue Sep  1 09:01:27 1998
> --- src/backend/tcop/postgres.c    Thu Oct 15 00:23:24 1998
> ***************
> *** 1049,1055 ****
> --- 1049,1061 ----
>                   break;
>
>               case 'D':            /* PGDATA directory */
> +                     if (!DataDir) {
> +                     DataDir = optarg;
> +                     /* must be done after DataDir is defined */
> +                     read_pg_options(0);
> +                 }
>                   DataDir = optarg;
> +                 break;
>
>               case 'd':            /* debug level */
>                   flagQ = false;
>
> --
> Massimo Dal Zotto
>
> +----------------------------------------------------------------------+
> |  Massimo Dal Zotto                email:  dz@cs.unitn.it             |
> |  Via Marconi, 141                 phone:  ++39-461-534251            |
> |  38057 Pergine Valsugana (TN)     www:  http://www.cs.unitn.it/~dz/  |
> |  Italy                            pgp:  finger dz@tango.cs.unitn.it  |
> +----------------------------------------------------------------------+
>
>


--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] What about LIMIT in SELECT ?
Следующее
От: "Thomas G. Lockhart"
Дата:
Сообщение: Re: [HACKERS] Re: [SQL] Optimizing perfomance using indexes