Обсуждение: pgsql-server: Use strdup in pg_ctl for canonicalize_path on environment
pgsql-server: Use strdup in pg_ctl for canonicalize_path on environment
От
momjian@svr1.postgresql.org (Bruce Momjian)
Дата:
Log Message:
-----------
Use strdup in pg_ctl for canonicalize_path on environment variable.
Simplify postmaster call too.
Modified Files:
--------------
pgsql-server/src/backend/postmaster:
postmaster.c (r1.409 -> r1.410)
(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/postmaster/postmaster.c.diff?r1=1.409&r2=1.410)
pgsql-server/src/bin/pg_ctl:
pg_ctl.c (r1.18 -> r1.19)
(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/bin/pg_ctl/pg_ctl.c.diff?r1=1.18&r2=1.19)
momjian@svr1.postgresql.org (Bruce Momjian) writes:
> Use strdup in pg_ctl for canonicalize_path on environment variable.
> Simplify postmaster call too.
You're not doing very well with this project :-(. pg_ctl is now
actively broken, because the PGDATA value passed down to the
bootstrap backend is the one in the environment variable. The
previous coding canonicalized that, this does not.
I do not like the "simplified" postmaster.c coding either; it may
save one line but it is harder to understand.
regards, tom lane
Tom Lane wrote: > momjian@svr1.postgresql.org (Bruce Momjian) writes: > > Use strdup in pg_ctl for canonicalize_path on environment variable. > > Simplify postmaster call too. > > You're not doing very well with this project :-(. pg_ctl is now > actively broken, because the PGDATA value passed down to the > bootstrap backend is the one in the environment variable. The > previous coding canonicalized that, this does not. I didn't think we could modify the environment variables like that portably. Also, it is not even needed because we now do the proper canonicalization in the postmaster. > I do not like the "simplified" postmaster.c coding either; it may > save one line but it is harder to understand. OK, reverted that part. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Tom Lane wrote:
>> You're not doing very well with this project :-(. pg_ctl is now
>> actively broken, because the PGDATA value passed down to the
>> bootstrap backend is the one in the environment variable. The
>> previous coding canonicalized that, this does not.
> I didn't think we could modify the environment variables like that
> portably.
Possibly not, but if you think that then the correct response is to
re-assign the environment var using putenv().
regards, tom lane
Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Tom Lane wrote: > >> You're not doing very well with this project :-(. pg_ctl is now > >> actively broken, because the PGDATA value passed down to the > >> bootstrap backend is the one in the environment variable. The > >> previous coding canonicalized that, this does not. > > > I didn't think we could modify the environment variables like that > > portably. > > Possibly not, but if you think that then the correct response is to > re-assign the environment var using putenv(). Yea, but we clean up the variable on input to the backend anyway. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073