Re: pgsql: Centralize definition of integer limits.

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Centralize definition of integer limits.
Date: 2015-03-30 11:09:12
Message-ID: CAB7nPqRRLOX_e13L1VagWJJNLHY3uzEo4wdNbQTvRQHZ7rbSKQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Mon, Mar 30, 2015 at 7:48 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:

> Hi,
>
> On 2015-03-30 14:01:25 +0900, Michael Paquier wrote:
> > On Thu, Mar 26, 2015 at 6:49 AM, Andres Freund <andres(at)anarazel(dot)de>
> wrote:
> > > Centralize definition of integer limits.
> > >
> > > Several submitted and even committed patches have run into the problem
> > > that C89, our baseline, does not provide minimum/maximum values for
> > > various integer datatypes. C99's stdint.h does, but we can't rely on
> > > it.
> > >
> > > Several parts of the code defined limits locally, so instead centralize
> > > the definitions to c.h.
> > >
> > > This patch also changes the more obvious usages of literal limit
> values;
> > > there's more places that could be changed, but it's less clear whether
> > > it's beneficial to change those.
> >
> > My OSX dev box is generating a couple of warnings since this commit:
> > pg_dump.c:14548:45: warning: format specifies type 'long' but the
> argument
> > has type 'long long' [-Wformat]
> > snprintf(bufm, sizeof(bufm), INT64_FORMAT, SEQ_MINVALUE);
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
> > ../../../src/include/pg_config_manual.h:52:22: note: expanded from macro
> > 'SEQ_MINVALUE'
> > #define SEQ_MINVALUE (-SEQ_MAXVALUE)
> > ^
> > /usr/include/secure/_stdio.h:56:62: note: expanded from macro 'snprintf'
> > __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__)
> > ^
> > pg_dump.c:14549:45: warning: format specifies type 'long' but the
> argument
> > has type 'long long' [-Wformat]
> > snprintf(bufx, sizeof(bufx), INT64_FORMAT, SEQ_MAXVALUE);
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
> > ../../../src/include/pg_config_manual.h:51:22: note: expanded from macro
> > 'SEQ_MAXVALUE'
> > #define SEQ_MAXVALUE INT64_MAX
> > ^~~~~~~~~
> > /usr/include/stdint.h:122:26: note: expanded from macro 'INT64_MAX'
> > #define INT64_MAX 9223372036854775807LL
> > ^~~~~~~~~~~~~~~~~~~~~
> > /usr/include/secure/_stdio.h:56:62: note: expanded from macro 'snprintf'
> > __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__)
>
> Hm. Can you send config.log and the generated pg_config.h?
>

Sure.
--
Michael

Attachment Content-Type Size
configs.tar.gz application/x-gzip 28.5 KB

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2015-03-30 17:05:42 pgsql: Fix rare core dump in BackendIdGetTransactionIds().
Previous Message Andres Freund 2015-03-30 10:51:24 Re: pgsql: Centralize definition of integer limits.

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2015-03-30 12:25:14 Re: Combining Aggregates
Previous Message Heikki Linnakangas 2015-03-30 10:52:46 WIP: SCRAM authentication