aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2014-06-30 22:03:37 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2014-06-30 22:03:37 -0400
commit03a25cec8de3737924c9dd33bb868d4bc7a33ad5 (patch)
treefb8a972d5deaa07289be96393ca3a53b528cc599
parent1b2488731cc2c87cc9a4cb8d654e4d9981fdf9ac (diff)
downloadpostgresql-03a25cec8de3737924c9dd33bb868d4bc7a33ad5.tar.gz
postgresql-03a25cec8de3737924c9dd33bb868d4bc7a33ad5.zip
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.
-rw-r--r--contrib/unaccent/unaccent.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/contrib/unaccent/unaccent.c b/contrib/unaccent/unaccent.c
index 0101506b458..c7d54b205e0 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);
}