Re: VS: BUG #16404: PostgreSQL 12.2: Database restore does not accept the EEST time zone. - Mailing list pgsql-bugs

From Tom Lane
Subject Re: VS: BUG #16404: PostgreSQL 12.2: Database restore does not accept the EEST time zone.
Date
Msg-id 5173.1588605856@sss.pgh.pa.us
Whole thread Raw
In response to VS: BUG #16404: PostgreSQL 12.2: Database restore does not accept theEEST time zone.  ("Suhonen Reijo (Valtori)" <reijo.suhonen@valtori.fi>)
List pgsql-bugs
"Suhonen Reijo (Valtori)" <reijo.suhonen@valtori.fi> writes:
> postgresql.conf
> restore_command = 'unxz -k < /srv/pgbackup/12/data/archive/%f.xz > %p'
> recovery_target_time = '2020-05-04 09:54:30 EEST'
> recovery_target_action = 'pause'

Ah.  I can reproduce it when I set recovery_target_time that way.

The reason seems to be that while loading the config file for the first
time, timezone_abbreviations hasn't been set yet, so the timestamp parser
doesn't know any timezone abbreviations at all.

It does work to use full time zone names (Europe/Helsinki, say)
or of course you could use a numeric UTC offset.

Another workaround is to explicitly set timezone_abbreviations
before you set recovery_target_time in the config file (i.e.,
move and uncomment the timezone_abbreviations setting).  But ugh.

Maybe it's possible to fix this, but I don't really see any non-kluge
way to do that.  I'm inclined to just document that timezone abbreviations
aren't accepted in this variable.

Note for anybody trying to reproduce this: I was misled for awhile
by the fact that a few abbreviations like "EST" *do* work.  The
reason turns out to be that the tzdata database has entries for those
names, so that our code path for full time zone names successfully
parses them after the abbreviations code fails to.

            regards, tom lane



pgsql-bugs by date:

Previous
From: Stephen Frost
Date:
Subject: Re: BUG #16415: Postgres 11.6 CentOS docker image needs a repo update
Next
From: Andres Freund
Date:
Subject: Re: BUG #16393: PANIC: cannot abort transaction, it was alreadycommitted