Thread: pgsql: Refactor datetime functions' timezone lookup code to reduce dupl

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3e59e5048d0f20debe4ad79b2e02ca2a76c5daed

Modified Files
--------------
src/backend/utils/adt/date.c      |  51 +++--------
src/backend/utils/adt/datetime.c  |  85 ++++++++++++++++++
src/backend/utils/adt/timestamp.c | 178 ++++++++------------------------------
src/include/utils/datetime.h      |   8 ++
4 files changed, 142 insertions(+), 180 deletions(-)