Force the TZ environment variable to be set during initdb. This is to
short-circuit the rather expensive identify_system_timezone() procedure, which we have no real need for during initdb since nothing done here depends on the timezone setting. Since we launch quite a few standalone backends during the initdb sequence, this adds up to a significant savings, and seems worth doing to save developer time even though it will hardly matter to end users. Per my report today on pgsql-hackers.
This commit is contained in:
parent
f5fd651e1b
commit
be3a24de19
@ -42,7 +42,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
* Portions taken from FreeBSD.
|
* Portions taken from FreeBSD.
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.178 2009/12/11 03:34:56 itagaki Exp $
|
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.179 2009/12/18 18:45:50 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -2712,6 +2712,14 @@ main(int argc, char *argv[])
|
|||||||
sprintf(pgdenv, "PGDATA=%s", pg_data);
|
sprintf(pgdenv, "PGDATA=%s", pg_data);
|
||||||
putenv(pgdenv);
|
putenv(pgdenv);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Also ensure that TZ is set, so that we don't waste time identifying the
|
||||||
|
* system timezone each of the many times we start a standalone backend.
|
||||||
|
* It's okay to use a hard-wired value here because nothing done during
|
||||||
|
* initdb cares about the timezone setting.
|
||||||
|
*/
|
||||||
|
putenv("TZ=GMT");
|
||||||
|
|
||||||
if ((ret = find_other_exec(argv[0], "postgres", PG_BACKEND_VERSIONSTR,
|
if ((ret = find_other_exec(argv[0], "postgres", PG_BACKEND_VERSIONSTR,
|
||||||
backend_exec)) < 0)
|
backend_exec)) < 0)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user