/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/pl/plpython/plpy_elog.h
46 строк
1 KB
Tom Lane
Make PLy_elog() use pg_integer_constant_p().
06 июл 2026, 20:48
06 июл 2026, 20:48
431896a
Код
Авторство
О чём код?
/* * src/pl/plpython/plpy_elog.h */ #ifndef PLPY_ELOG_H #define PLPY_ELOG_H #include "plpython.h" /* global exception classes */ extern PyObject *PLy_exc_error; extern PyObject *PLy_exc_fatal; extern PyObject *PLy_exc_spi_error; /* * PLy_elog() * * See comments at elog() about the compiler hinting. */ #ifdef HAVE_PG_INTEGER_CONSTANT_P #define PLy_elog(elevel, ...) \ do { \ PLy_elog_impl(elevel, __VA_ARGS__); \ if (pg_integer_constant_p(elevel) && (elevel) >= ERROR) \ pg_unreachable(); \ } while(0) #else /* !HAVE_PG_INTEGER_CONSTANT_P */ #define PLy_elog(elevel, ...) \ do { \ const int elevel_ = (elevel); \ PLy_elog_impl(elevel_, __VA_ARGS__); \ if (elevel_ >= ERROR) \ pg_unreachable(); \ } while(0) #endif /* HAVE_PG_INTEGER_CONSTANT_P */ extern PGDLLEXPORT void PLy_elog_impl(int elevel, const char *fmt, ...) pg_attribute_printf(2, 3); extern PGDLLEXPORT void PLy_exception_set(PyObject *exc, const char *fmt, ...) pg_attribute_printf(2, 3); extern PGDLLEXPORT void PLy_exception_set_plural(PyObject *exc, const char *fmt_singular, const char *fmt_plural, unsigned long n, ...) pg_attribute_printf(2, 5) pg_attribute_printf(3, 5); extern PGDLLEXPORT void PLy_exception_set_with_details(PyObject *excclass, ErrorData *edata); #endif /* PLPY_ELOG_H */