quiet_parser.c
application/octet-stream
#include "postgres.h"
#include "parser/parser.h"
#include "utils/builtins.h"
PG_MODULE_MAGIC;
/* Save previous parser hook */
static parser_hook_type prev_parser_hook = NULL;
/* Module load/unload functions */
void _PG_init(void);
void _PG_fini(void);
static List *
quiet_parser(const char *str, RawParseMode mode)
{
List *result;
PG_TRY();
{
result = standard_raw_parser(str, mode);
}
PG_CATCH();
{
ereport(ERROR,
(errmsg("Suppressed parse error"),
errhidestmt(true)));
}
PG_END_TRY();
return result;
}
void
_PG_init(void)
{
prev_parser_hook = parser_hook;
parser_hook = quiet_parser;
}
void
_PG_fini(void)
{
parser_hook = prev_parser_hook;
}