On 2013-02-01 19:44:42 -0300, Alvaro Herrera wrote:
> Tom Lane wrote:
> > Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> > > Move Assert() definitions to c.h
> >
> > This seems a bit odd. Why didn't you move all of postgres.h's section 3
> > into the new section in c.h? The couple of declarations you left there
> > are neither useful nor intelligible on their own.
>
> Hmm, true, I didn't consider that. Will fix.
I left it there because assert_enabled and ExceptionalCondition should
never be required in a frontend environment. Wasn't sure about that one,
so moving it is absolutely fine with me.
>
>
> > Also, I think there's a typo here:
> >
> > +#else /* USE_ASSERT_CHECKING && FRONTEND */
> >
> > Should be
> >
> > +#else /* USE_ASSERT_CHECKING && !FRONTEND */
> >
> > no?
>
> This bit I did consider. It wasn't clear to me whether those comments
> mean that the condition spelled out in the comment holds for the lines
> below, or that they hold for the lines above. Note the comment after
> the #endif holds for the lines above it.
>
> After searching for precedent, I found one in ip.c and it seems to
> support what you say.
I think there exists precedent for both spellings, don't really about
which one we use here.
One other thing I didn't think of, if youre at it agan, what about
changing the #ifndef USE_ASSERT_CHECKING definition of
#define Assert(condition)
into
#define Assert(condition) ((void)true)
That makes for fewer warnings on some pedantic compiler modes and is in
line with C's assert() IIRC.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services