Re: pg_dump/pg_restore seem broken on hamerkop

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Tatsuo Ishii <ishii(at)postgresql(dot)org>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: pg_dump/pg_restore seem broken on hamerkop
Date: 2014-10-27 00:29:19
Message-ID: 17276.1414369759@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I wrote:
> Hm. %z ought not be locale-dependent ... however, it has a bigger
> problem, which is that it's a C99-ism. It's not there in SUSv2,
> which is our normal baseline for what's portable. I think we need
> to get rid of that. %Z should be portable.

> (Is it possible that Windows' strftime() reads %z as doing something
> other than what C99 says?)

A bit of googling leads me to Microsoft reference material saying that
their strftime treats %z and %Z alike. So in point of fact, the
assumption underlying commit ad5d46a4494b0b48 was flat out wrong.
Switching to %z doesn't get you out of the problem noted in the
comments it removed:

/*
* 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.
*/

I'm going to go revert most of that commit and make the code like it
was before:

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)

If somebody wants to have timezones printed on Windows, they can
try again, but they're gonna have to work harder than this.

It's possible that fixing this will not fix whatever's bothering
hamerkop, but given the lack of backward-portability of %z, this
code has got to go anyway.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2014-10-27 00:56:12 Re: [PATCH] Simplify EXISTS subqueries containing LIMIT
Previous Message Tom Lane 2014-10-27 00:11:49 Re: pg_dump/pg_restore seem broken on hamerkop