From: Tom Lane Date: Fri, 18 Dec 2009 18:45:50 +0000 (+0000) Subject: Force the TZ environment variable to be set during initdb. This is to X-Git-Tag: REL8_5_ALPHA3~21 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=be3a24de196ba81d30e134829412476e200cb228;p=postgresql 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. --- diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 6f1f211c14..d7cf1a4433 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -42,7 +42,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * 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); 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, backend_exec)) < 0) {