]> granicus.if.org Git - postgresql/commitdiff
Fix to_date's handling of year 519.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 2 Jul 2012 15:35:21 +0000 (11:35 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 2 Jul 2012 15:35:35 +0000 (11:35 -0400)
A thinko in commit 029dfdf1157b6d837a7b7211cd35b00c6bcd767c caused the year
519 to be handled differently from either adjacent year, which was not the
intention AFAICS.  Report and diagnosis by Marc Cousin.

In passing, remove redundant re-tests of year value.

src/backend/utils/adt/formatting.c

index 765c6aa8d5edff3ab08cb7433057176672ba7404..b46cb87615060cd02eec9f8b642a247cf035c72e 100644 (file)
@@ -1987,20 +1987,20 @@ static int
 adjust_partial_year_to_2020(int year)
 {
        /*
-        * Adjust all dates toward 2020;  this is effectively what happens when we
+        * Adjust all dates toward 2020; this is effectively what happens when we
         * assume '70' is 1970 and '69' is 2069.
         */
        /* Force 0-69 into the 2000's */
        if (year < 70)
                return year + 2000;
        /* Force 70-99 into the 1900's */
-       else if (year >= 70 && year < 100)
+       else if (year < 100)
                return year + 1900;
        /* Force 100-519 into the 2000's */
-       else if (year >= 100 && year < 519)
+       else if (year < 520)
                return year + 2000;
        /* Force 520-999 into the 1000's */
-       else if (year >= 520 && year < 1000)
+       else if (year < 1000)
                return year + 1000;
        else
                return year;