Refactor datetime functions' timezone lookup code to reduce duplication.

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

Commit: 3e59e5048d0f20debe4ad79b2e02ca2a76c5daed
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2023-03-17T21:47:19Z
Releases: 16.0
Refactor datetime functions' timezone lookup code to reduce duplication.

We already had five copies of essentially the same logic, and an
upcoming patch introduces yet another use-case.  That's past my
threshold of pain, so introduce a common subroutine.  There's not
that much net code savings, but the chance of typos should go down.

Inspired by a patch from Przemysław Sztoch, but different in detail.

Discussion: https://postgr.es/m/01a84551-48dd-1359-bf7e-f6b0203a6bd0@sztoch.pl

Files

PathChange+/−
src/backend/utils/adt/date.c modified +12 −39
src/backend/utils/adt/datetime.c modified +85 −0
src/backend/utils/adt/timestamp.c modified +37 −141
src/include/utils/datetime.h modified +8 −0

Discussion