Fix EXTRACT(ISOYEAR FROM timestamp) for years BC.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Dec 2019 17:30:43 +0000 (12:30 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Dec 2019 17:30:43 +0000 (12:30 -0500)
commit1a3efa1eb67ab752231a6fff2743a77ae55808d5
treed5fc67c0ee0cf0fdb80148f4a8ab36e68362e290
parent26ae3aa80e337261203ba4442452bed261ff9888
Fix EXTRACT(ISOYEAR FROM timestamp) for years BC.

The test cases added by commit 26ae3aa80 exposed an old oversight in
timestamp[tz]_part: they didn't correct the result of date2isoyear()
for BC years, so that we produced an off-by-one answer for such years.
Fix that, and back-patch to all supported branches.

Discussion: https://postgr.es/m/SG2PR06MB37762CAE45DB0F6CA7001EA9B6550@SG2PR06MB3776.apcprd06.prod.outlook.com
src/backend/utils/adt/timestamp.c
src/test/regress/expected/timestamp.out
src/test/regress/expected/timestamptz.out