From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Assert for frontend programs? |
Date: | 2012-12-14 15:54:35 |
Message-ID: | 769.1355500475@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
> As I'm working through the parallel dump patch, I notice this in one of
> the header files:
> #ifdef USE_ASSERT_CHECKING
> #define Assert(condition) \
> if (!(condition)) \
> { \
> write_msg(NULL, "Failed assertion in %s, line %d\n", \
> __FILE__, __LINE__); \
> abort();\
> }
> #else
> #define Assert(condition)
> #endif
> I'm wondering if we should have something like this centrally (e.g. in
> postgres_fe.h)? I can certainly see people wanting to be able to use
> Assert in frontend programs generally, and it makes sense to me not to
> make everyone roll their own.
+1, especially if the hand-rolled versions are likely to be as bad as
that one (dangling else, maybe some other issues I'm not spotting
in advance of caffeine consumption). I've wished for frontend Assert
a few times myself, but never bothered to make it happen.
Although I think we had this discussion earlier and it stalled at
figuring out exactly what the "print error" part of the macro ought
to be. The above is obviously pg_dump-specific. Perhaps
fprintf(stderr,...) would be sufficient, though -- it's not like
tremendous user friendliness ought to be necessary here.
Also, I think the message really has to include some string-ified
version of the assertion condition --- the line number alone is pretty
unhelpful when looking at field reports of uncertain provenance.
BTW, I think psql already has a "psql_assert".
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Merlin Moncure | 2012-12-14 15:55:28 | Re: Use gcc built-in atomic inc/dec in lock.c |
Previous Message | Karl O. Pinc | 2012-12-14 15:52:48 | Re: Doc patch, index search_path where it's used to secure functions |