Suppress timezone (%Z) part of timestamp display when running on Windows,
because on that platform strftime produces localized zone names in varying encodings. Even though it's only in a comment, this can cause encoding errors when reloading the dump script. Per suggestion from Andreas Seltenreich. Also, suppress %Z on Windows in the %s escape of log_line_prefix ... not sure why this one is different from the other two, but it shouldn't be.
This commit is contained in:
parent
c714e5cba7
commit
5fc2d7e451
|
@ -42,7 +42,7 @@
|
|||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.176 2006/11/21 00:49:55 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.177 2006/11/21 22:19:46 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -1471,7 +1471,7 @@ log_line_prefix(StringInfo buf)
|
|||
char strfbuf[128];
|
||||
|
||||
strftime(strfbuf, sizeof(strfbuf),
|
||||
/* Win32 timezone names are too long so don't print them. */
|
||||
/* Win32 timezone names are too long so don't print them */
|
||||
#ifndef WIN32
|
||||
"%Y-%m-%d %H:%M:%S %Z",
|
||||
#else
|
||||
|
@ -1487,7 +1487,12 @@ log_line_prefix(StringInfo buf)
|
|||
char strfbuf[128];
|
||||
|
||||
strftime(strfbuf, sizeof(strfbuf),
|
||||
/* Win32 timezone names are too long so don't print them */
|
||||
#ifndef WIN32
|
||||
"%Y-%m-%d %H:%M:%S %Z",
|
||||
#else
|
||||
"%Y-%m-%d %H:%M:%S",
|
||||
#endif
|
||||
localtime(&MyProcPort->session_start));
|
||||
appendStringInfoString(buf, strfbuf);
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.137 2006/10/14 23:07:22 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.138 2006/11/21 22:19:46 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -2780,6 +2780,18 @@ dumpTimestamp(ArchiveHandle *AH, const char *msg, time_t tim)
|
|||
{
|
||||
char buf[256];
|
||||
|
||||
if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&tim)) != 0)
|
||||
/*
|
||||
* We don't print the timezone on Win32, because the names are long and
|
||||
* localized, which means they may contain characters in various random
|
||||
* encodings; this has been seen to cause encoding errors when reading
|
||||
* the dump script.
|
||||
*/
|
||||
if (strftime(buf, sizeof(buf),
|
||||
#ifndef WIN32
|
||||
"%Y-%m-%d %H:%M:%S %Z",
|
||||
#else
|
||||
"%Y-%m-%d %H:%M:%S",
|
||||
#endif
|
||||
localtime(&tim)) != 0)
|
||||
ahprintf(AH, "-- %s %s\n\n", msg, buf);
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.84 2006/10/07 20:59:05 petere Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.85 2006/11/21 22:19:46 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -1320,6 +1320,18 @@ dumpTimestamp(char *msg)
|
|||
char buf[256];
|
||||
time_t now = time(NULL);
|
||||
|
||||
if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0)
|
||||
/*
|
||||
* We don't print the timezone on Win32, because the names are long and
|
||||
* localized, which means they may contain characters in various random
|
||||
* encodings; this has been seen to cause encoding errors when reading
|
||||
* the dump script.
|
||||
*/
|
||||
if (strftime(buf, sizeof(buf),
|
||||
#ifndef WIN32
|
||||
"%Y-%m-%d %H:%M:%S %Z",
|
||||
#else
|
||||
"%Y-%m-%d %H:%M:%S",
|
||||
#endif
|
||||
localtime(&now)) != 0)
|
||||
printf("-- %s %s\n\n", msg, buf);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue