Andrew Dunstan <and...@dunslane.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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers