#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;
}
