[prev in list] [next in list] [prev in thread] [next in thread]
List: pgsql-committers
Subject: [COMMITTERS] Re: pgsql: to_char(): have format 'OF' only show the leading negative sign
From: Bruce Momjian <bruce () momjian ! us>
Date: 2015-04-29 21:04:04
Message-ID: 20150429210404.GO31727 () momjian ! us
[Download RAW message or body]
On Wed, Apr 29, 2015 at 10:11:02AM -0400, Stephen Frost wrote:
> Bruce,
>
> * Bruce Momjian (bruce@momjian.us) wrote:
> > to_char(): have format 'OF' only show the leading negative sign
> >
> > Previously both hours and minutes displayed as negative.
> >
> > Report by David Pozsar
>
> This is causing the following error for me:
>
> /home/sfrost/git/pg/dev/postgresql/src/backend/utils/adt/formatting.c: In function \
> ‘DCH_to_char':
> /home/sfrost/git/pg/dev/postgresql/src/backend/utils/adt/formatting.c:2510:6: \
> warning: format ‘%ld' expects argument of type ‘long int', but argument 3 has \
> type ‘int' [-Wformat=] sprintf(s, ":%02ld", abs(tm->tm_gmtoff % SECS_PER_HOUR) / \
> SECS_PER_MINUTE); ^
>
> Since abs() is declared to return just an int. I don't see it anywhere
> in our tree and I'm not sure how portable it actually is, but labs() is
> supposedly in C89, so perhaps that should be used here instead?
OK, I have switched to labs() and will keep an eye on the buildfarm;
patch attached. (There is already an uncomfortable amount of red
there.)
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
["to_char.diff" (text/x-diff)]
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
new file mode 100644
index 576db95..dbff94d
*** a/src/backend/utils/adt/formatting.c
--- b/src/backend/utils/adt/formatting.c
*************** DCH_to_char(FormatNode *node, bool is_in
*** 2507,2513 ****
s += strlen(s);
if (tm->tm_gmtoff % SECS_PER_HOUR != 0)
{
! sprintf(s, ":%02ld", abs(tm->tm_gmtoff % SECS_PER_HOUR) / SECS_PER_MINUTE);
s += strlen(s);
}
break;
--- 2507,2513 ----
s += strlen(s);
if (tm->tm_gmtoff % SECS_PER_HOUR != 0)
{
! sprintf(s, ":%02ld", labs(tm->tm_gmtoff % SECS_PER_HOUR) / SECS_PER_MINUTE);
s += strlen(s);
}
break;
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic