OSDN Git Service

Clean up the code for to_timestamp's conversion of year plus ISO day number
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 15 Mar 2009 20:31:19 +0000 (20:31 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 15 Mar 2009 20:31:19 +0000 (20:31 +0000)
commit7a52a8f829a9f50e054a0643826f73092749c0cf
tree62a56e5115b9705236b19a051bf752d7d6b34dd3
parent0f80200a8e0692c39bdc0e6caa1809a63fa44fc8
Clean up the code for to_timestamp's conversion of year plus ISO day number
to date, as per bug #4702 and subsequent discussion.  In particular, make it
work for years specified using AD/BC or CC fields, and fix the test for "no
year specified" so that it doesn't trigger inappropriately for 1 BC (which it
was doing even in code paths that had nothing to do with to_timestamp).  I
also did some minor code beautification in the non-ISO-day-number code path.

This area has been busted all along, but because the code has been rewritten
repeatedly, it would be considerable trouble to back-patch.  It's such a
corner case that it doesn't seem worth the effort.
src/backend/utils/adt/formatting.c
src/backend/utils/adt/timestamp.c