postgres_fdw fails because GMT != UTC

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@lists.postgresql.org
Date: 2024-04-04T06:19:45Z
Lists: pgsql-hackers
Over at [1] we have a complaint of postgres_fdw failing with
a remote-server error

> ERROR:  invalid value for parameter "TimeZone": "UTC"

I am not quite clear on how broken an installation needs to be to
reject "UTC" as a time zone setting, except that the breakage cannot
be subtle.  However, I notice that our code in pgtz.c and other
places treats "GMT" as a hard-wired special case ... but not "UTC".
I wonder if we ought to modify those places to force "UTC" down the
same hard-wired paths.  If we acted like that, this would have worked
no matter how misconfigured the installation was.

An alternative answer could be to change postgres_fdw to send "GMT"
not "UTC".  That's ugly from a standards-compliance viewpoint, but
it would fix this problem even with a non-updated remote server,
and I think postgres_fdw is generally intended to work with even
very old remote servers.

Or we could do both.

Thoughts?

			regards, tom lane

[1] https://www.postgresql.org/message-id/flat/5DF49366-10D1-42A4-99BF-F9A7DC3AB0F4%40mailbox.org



Commits

  1. Make postgres_fdw request remote time zone 'GMT' not 'UTC'.