From eb990a2b9efff853d0c68a9cf902b1df23498540 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Thu, 15 Mar 2012 21:17:19 +0200 Subject: [PATCH] Add const qualifier to tzn returned by timestamp2tm() 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 | 2 +- src/backend/utils/adt/formatting.c | 2 +- src/backend/utils/adt/timestamp.c | 8 ++++---- src/backend/utils/adt/xml.c | 2 +- src/include/utils/timestamp.h | 2 +- src/interfaces/ecpg/pgtypeslib/timestamp.c | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index 56515f15b9d..9ceb269b3fc 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -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; diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index c5e25d942ec..8ff87d6a0e8 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -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) diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index b3cf1b16a5e..88ff57dd38a 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -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 { diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index b042e6b36b1..c51a9f76ced 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -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); diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h index 2eae95efac1..56699247668 100644 --- a/src/include/utils/timestamp.h +++ b/src/include/utils/timestamp.h @@ -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); diff --git a/src/interfaces/ecpg/pgtypeslib/timestamp.c b/src/interfaces/ecpg/pgtypeslib/timestamp.c index b0e99766f5b..1eaf715c473 100644 --- a/src/interfaces/ecpg/pgtypeslib/timestamp.c +++ b/src/interfaces/ecpg/pgtypeslib/timestamp.c @@ -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) -- GitLab