Re: check_recovery_target_lsn() does a PG_CATCH without a throw

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2019-06-20T13:42:14Z
Lists: pgsql-hackers
On 2019-06-12 13:16, Peter Eisentraut wrote:
> I haven't figured out the time zone issue yet, but I guess the solution
> might involve moving some of the code from check_recovery_target_time()
> to assign_recovery_target_time().

I think that won't work either.  What we need to do is postpone the
interpretation of the timestamp string until after all the GUC
processing is done.  So check_recovery_target_time() would just do some
basic parsing checks, but stores the string.  Then when we need the
recovery_target_time_value we do the final parsing.  Then we can be sure
that the time zone is all set.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Don't call data type input functions in GUC check hooks