Hi, While working on the "What's new in 9.2", I think I found a small bug:
SELECT to_date('519-07-02','YYY-MM-DD'); to_date ------------ 0519-07-02 (1 row) It comes, I think, from the year 519 case not being handled in the following code. Patch attached + if (year < 70) + return year + 2000; + /* Force 70-99 into the 1900's */ + else if (year >= 70 && year < 100) + return year + 1900; + /* Force 100-519 into the 2000's */ + else if (year >= 100 && year < 519) + return year + 2000; + /* Force 520-999 into the 1000's */ + else if (year >= 520 && year < 1000) + return year + 1000; + else + return year; Regards
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index 765c6aa..8eb7d5d 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -1997,7 +1997,7 @@ adjust_partial_year_to_2020(int year) else if (year >= 70 && year < 100) return year + 1900; /* Force 100-519 into the 2000's */ - else if (year >= 100 && year < 519) + else if (year >= 100 && year <= 519) return year + 2000; /* Force 520-999 into the 1000's */ else if (year >= 520 && year < 1000)
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers