From 03a25cec8de3737924c9dd33bb868d4bc7a33ad5 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 30 Jun 2014 22:03:37 -0400 Subject: [PATCH] Issue a WARNING about invalid rule file format in contrib/unaccent. We were already issuing a WARNING, albeit only elog not ereport, for duplicate source strings; so warning rather than just being stoically silent seems like the best thing to do here. Arguably both of these complaints should be upgraded to ERRORs, but that might be more behavioral change than people want. Note: the faulty line is already printed via an errcontext hook, so there's no need for more information than these messages provide. --- contrib/unaccent/unaccent.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/unaccent/unaccent.c b/contrib/unaccent/unaccent.c index 0101506b45..c7d54b205e 100644 --- a/contrib/unaccent/unaccent.c +++ b/contrib/unaccent/unaccent.c @@ -63,7 +63,9 @@ placeChar(TrieChar *node, const unsigned char *str, int lenstr, if (lenstr <= 1) { if (curnode->replaceTo) - elog(WARNING, "duplicate source strings, first one will be used"); + ereport(WARNING, + (errcode(ERRCODE_CONFIG_FILE_ERROR), + errmsg("duplicate source strings, first one will be used"))); else { curnode->replacelen = replacelen; @@ -128,7 +130,7 @@ initTrie(char *filename) * 2 in whitespace after src * 3 in trg * 4 in whitespace after trg - * -1 syntax error detected (line will be ignored) + * -1 syntax error detected *---------- */ int state; @@ -192,6 +194,10 @@ initTrie(char *filename) rootTrie = placeChar(rootTrie, (unsigned char *) src, srclen, trg, trglen); + else if (state < 0) + ereport(WARNING, + (errcode(ERRCODE_CONFIG_FILE_ERROR), + errmsg("invalid syntax: more than two strings in unaccent rule"))); pfree(line); } -- 2.40.0