]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Replace float8 with int in date2isoweek() and date2isoyear(). master github/master
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 12 Jul 2025 15:50:35 +0000 (11:50 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 12 Jul 2025 15:50:37 +0000 (11:50 -0400)
The values of the "result" variables in these functions are
always integers; using a float8 variable accomplishes nothing
except to incur useless conversions to and from float.  While
that wastes a few nanoseconds, these functions aren't all that
time-critical.  But it seems worth fixing to remove possible
reader confusion.

Also, in the case of date2isoyear(), "result" is a very poorly
chosen variable name because it is *not* the function's result.
Rename it to "week", and do the same in date2isoweek() for
consistency.

Since this is mostly cosmetic, there seems little need
for back-patch.

Author: Sergey Fukanchik <s.fukanchik@postgrespro.ru>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/6323a-68726500-1-7def9d00@137821581

src/backend/utils/adt/timestamp.c

index 0a5848a4ab201559924e4a973cc76884f824e74b..25cff56c3d07ec85c8b2c9137a8bc315d1f23dbf 100644 (file)
@@ -5312,10 +5312,10 @@ isoweekdate2date(int isoweek, int wday, int *year, int *mon, int *mday)
 int
 date2isoweek(int year, int mon, int mday)
 {
-       float8          result;
        int                     day0,
                                day4,
-                               dayn;
+                               dayn,
+                               week;
 
        /* current day */
        dayn = date2j(year, mon, mday);
@@ -5338,13 +5338,13 @@ date2isoweek(int year, int mon, int mday)
                day0 = j2day(day4 - 1);
        }
 
-       result = (dayn - (day4 - day0)) / 7 + 1;
+       week = (dayn - (day4 - day0)) / 7 + 1;
 
        /*
         * Sometimes the last few days in a year will fall into the first week of
         * the next year, so check for this.
         */
-       if (result >= 52)
+       if (week >= 52)
        {
                day4 = date2j(year + 1, 1, 4);
 
@@ -5352,10 +5352,10 @@ date2isoweek(int year, int mon, int mday)
                day0 = j2day(day4 - 1);
 
                if (dayn >= day4 - day0)
-                       result = (dayn - (day4 - day0)) / 7 + 1;
+                       week = (dayn - (day4 - day0)) / 7 + 1;
        }
 
-       return (int) result;
+       return week;
 }
 
 
@@ -5367,10 +5367,10 @@ date2isoweek(int year, int mon, int mday)
 int
 date2isoyear(int year, int mon, int mday)
 {
-       float8          result;
        int                     day0,
                                day4,
-                               dayn;
+                               dayn,
+                               week;
 
        /* current day */
        dayn = date2j(year, mon, mday);
@@ -5395,13 +5395,13 @@ date2isoyear(int year, int mon, int mday)
                year--;
        }
 
-       result = (dayn - (day4 - day0)) / 7 + 1;
+       week = (dayn - (day4 - day0)) / 7 + 1;
 
        /*
         * Sometimes the last few days in a year will fall into the first week of
         * the next year, so check for this.
         */
-       if (result >= 52)
+       if (week >= 52)
        {
                day4 = date2j(year + 1, 1, 4);