20 #ifdef HAVE__BUILTIN_CONSTANT_P
21 #define PLy_elog(elevel, ...) \
23 PLy_elog_impl(elevel, __VA_ARGS__); \
24 if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \
28 #define PLy_elog(elevel, ...) \
30 const int elevel_ = (elevel); \
31 PLy_elog_impl(elevel_, __VA_ARGS__); \
32 if (elevel_ >= ERROR) \
static void const char * fmt
PyObject * PLy_exc_spi_error
PGDLLEXPORT void PGDLLEXPORT void PLy_exception_set(PyObject *exc, const char *fmt,...) pg_attribute_printf(2
PGDLLEXPORT void PGDLLEXPORT void PGDLLEXPORT void pg_attribute_printf(3, 5)
PGDLLEXPORT void PGDLLEXPORT void PGDLLEXPORT void PLy_exception_set_plural(PyObject *exc, const char *fmt_singular, const char *fmt_plural, unsigned long n,...) pg_attribute_printf(2
PGDLLEXPORT void PLy_elog_impl(int elevel, const char *fmt,...) pg_attribute_printf(2
PGDLLEXPORT void PLy_exception_set_with_details(PyObject *excclass, ErrorData *edata)