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.
This commit is contained in:
Tom Lane 2014-06-30 22:03:37 -04:00
parent 1b2488731c
commit 03a25cec8d
1 changed files with 8 additions and 2 deletions

View File

@ -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);
}