Add const qualifier to tzn returned by timestamp2tm()
authorPeter Eisentraut
Thu, 15 Mar 2012 19:17:19 +0000 (21:17 +0200)
committerPeter Eisentraut
Thu, 15 Mar 2012 19:17:19 +0000 (21:17 +0200)
The tzn value might come from tm->tm_zone, which libc declares as
const, so it's prudent that the upper layers know about this as well.

src/backend/utils/adt/datetime.c
src/backend/utils/adt/formatting.c
src/backend/utils/adt/timestamp.c
src/backend/utils/adt/xml.c
src/include/utils/timestamp.h
src/interfaces/ecpg/pgtypeslib/timestamp.c

index 56515f15b9d4248d03cab7f4b394bb0074d34810..9ceb269b3fcd155781ff1a56a51dc025a0e8e12b 100644 (file)
@@ -4337,7 +4337,7 @@ pg_timezone_names(PG_FUNCTION_ARGS)
    int         tzoff;
    struct pg_tm tm;
    fsec_t      fsec;
-   char       *tzn;
+   const char *tzn;
    Interval   *resInterval;
    struct pg_tm itm;
 
index c5e25d942ec4ffd6d5dd6c893e45a5d941cf5199..8ff87d6a0e8f7a376c85084bf359a136eb302508 100644 (file)
@@ -459,7 +459,7 @@ typedef struct TmToChar
 {
    struct pg_tm tm;            /* classic 'tm' struct */
    fsec_t      fsec;           /* fractional seconds */
-   char       *tzn;            /* timezone */
+   const char *tzn;            /* timezone */
 } TmToChar;
 
 #define tmtcTm(_X) (&(_X)->tm)
index b3cf1b16a5ec9fe91a07194c7133de0f7df4ba08..88ff57dd38a7f1c1ad00f4a75f512ffe2afd37a4 100644 (file)
@@ -494,7 +494,7 @@ timestamptz_out(PG_FUNCTION_ARGS)
    struct pg_tm tt,
               *tm = &tt;
    fsec_t      fsec;
-   char       *tzn;
+   const char *tzn;
    char        buf[MAXDATELEN + 1];
 
    if (TIMESTAMP_NOT_FINITE(dt))
@@ -1415,7 +1415,7 @@ timestamptz_to_str(TimestampTz t)
    struct pg_tm tt,
               *tm = &tt;
    fsec_t      fsec;
-   char       *tzn;
+   const char *tzn;
 
    if (TIMESTAMP_NOT_FINITE(t))
        EncodeSpecialTimestamp(t, buf);
@@ -1466,7 +1466,7 @@ dt2time(Timestamp jd, int *hour, int *min, int *sec, fsec_t *fsec)
  * timezone) will be used.
  */
 int
-timestamp2tm(Timestamp dt, int *tzp, struct pg_tm * tm, fsec_t *fsec, char **tzn, pg_tz *attimezone)
+timestamp2tm(Timestamp dt, int *tzp, struct pg_tm * tm, fsec_t *fsec, const char **tzn, pg_tz *attimezone)
 {
    Timestamp   date;
    Timestamp   time;
@@ -1602,7 +1602,7 @@ recalc_t:
        tm->tm_zone = tx->tm_zone;
        *tzp = -tm->tm_gmtoff;
        if (tzn != NULL)
-           *tzn = (char *) tm->tm_zone;
+           *tzn = tm->tm_zone;
    }
    else
    {
index b042e6b36b16c325afe223eaedcd9ab3b9fa5a83..c51a9f76cede07354fb67c3bc320deb49c7dba84 100644 (file)
@@ -2013,7 +2013,7 @@ map_sql_value_to_xml_value(Datum value, Oid type, bool xml_escape_strings)
                    struct pg_tm tm;
                    int         tz;
                    fsec_t      fsec;
-                   char       *tzn = NULL;
+                   const char *tzn = NULL;
                    char        buf[MAXDATELEN + 1];
 
                    timestamp = DatumGetTimestamp(value);
index 2eae95efac1d1c9bcf249cb7c24389a1a0c2e63b..56699247668e62fa1fd92946428044aa15b3b32f 100644 (file)
@@ -222,7 +222,7 @@ extern const char *timestamptz_to_str(TimestampTz t);
 
 extern int tm2timestamp(struct pg_tm * tm, fsec_t fsec, int *tzp, Timestamp *dt);
 extern int timestamp2tm(Timestamp dt, int *tzp, struct pg_tm * tm,
-            fsec_t *fsec, char **tzn, pg_tz *attimezone);
+            fsec_t *fsec, const char **tzn, pg_tz *attimezone);
 extern void dt2time(Timestamp dt, int *hour, int *min, int *sec, fsec_t *fsec);
 
 extern int interval2tm(Interval span, struct pg_tm * tm, fsec_t *fsec);
index b0e99766f5bc1f7604ed0118078eb7932a3247d0..1eaf715c47385af5c0c19e0efe1e1e3f26c61e34 100644 (file)
@@ -119,7 +119,7 @@ SetEpochTimestamp(void)
  * local time zone. If out of this range, leave as GMT. - tgl 97/05/27
  */
 static int
-timestamp2tm(timestamp dt, int *tzp, struct tm * tm, fsec_t *fsec, char **tzn)
+timestamp2tm(timestamp dt, int *tzp, struct tm * tm, fsec_t *fsec, const char **tzn)
 {
 #ifdef HAVE_INT64_TIMESTAMP
    int64       dDate,
@@ -224,7 +224,7 @@ recalc_t:
 
            *tzp = -tm->tm_gmtoff;      /* tm_gmtoff is Sun/DEC-ism */
            if (tzn != NULL)
-               *tzn = (char *) tm->tm_zone;
+               *tzn = tm->tm_zone;
 #elif defined(HAVE_INT_TIMEZONE)
            *tzp = (tm->tm_isdst > 0) ? TIMEZONE_GLOBAL - SECS_PER_HOUR : TIMEZONE_GLOBAL;
            if (tzn != NULL)