Thread
-
small bug on 3-digit years in 9.2-dev
Marc Cousin <cousinmarc@gmail.com> — 2012-07-02T09:32:50Z
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 -
Re: small bug on 3-digit years in 9.2-dev
Tom Lane <tgl@sss.pgh.pa.us> — 2012-07-02T15:17:19Z
Marc Cousin <cousinmarc@gmail.com> writes: > While working on the "What's new in 9.2", I think I found a small bug: Yeah, that code certainly looks wrong, thanks for the report! > /* Force 100-519 into the 2000's */ > - else if (year >= 100 && year < 519) > + else if (year >= 100 && year <= 519) I think "< 520" would be more in keeping with the adjacent coding. regards, tom lane