Ignore too long lexeme
authorTeodor Sigaev <teodor@sigaev.ru>
Tue, 25 Nov 2003 13:33:15 +0000 (13:33 +0000)
committerTeodor Sigaev <teodor@sigaev.ru>
Tue, 25 Nov 2003 13:33:15 +0000 (13:33 +0000)
contrib/tsearch2/ts_cfg.c

index 6ff25b2b166de0f8ce04e79bb4aa062c86258a25..0898b9192400b576ffaa59306b5d76b39eb6376b 100644 (file)
@@ -21,6 +21,8 @@
 #include "common.h"
 #include "tsvector.h"
 
+#define IGNORE_LONGLEXEME      1
+
 /*********top interface**********/
 
 static void *plan_getcfg_bylocale = NULL;
@@ -288,10 +290,18 @@ parsetext_v2(TSCfgInfo * cfg, PRSTEXT * prs, char *buf, int4 buflen)
                                                                           PointerGetDatum(&lenlemm)))) != 0)
        {
 
-               if (lenlemm >= MAXSTRLEN)
+               if (lenlemm >= MAXSTRLEN) {
+#ifdef IGNORE_LONGLEXEME
+                       ereport(NOTICE,
+                                       (errcode(ERRCODE_SYNTAX_ERROR),
+                                        errmsg("word is too long")));
+                       continue;
+#else 
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
                                         errmsg("word is too long")));
+#endif
+               }
 
                if (type >= cfg->len)   /* skip this type of lexem */
                        continue;
@@ -414,10 +424,18 @@ hlparsetext(TSCfgInfo * cfg, HLPRSTEXT * prs, QUERYTYPE * query, char *buf, int4
                                                                           PointerGetDatum(&lenlemm)))) != 0)
        {
 
-               if (lenlemm >= MAXSTRLEN)
+               if (lenlemm >= MAXSTRLEN) {
+#ifdef IGNORE_LONGLEXEME
+                       ereport(NOTICE,
+                                       (errcode(ERRCODE_SYNTAX_ERROR),
+                                        errmsg("word is too long")));
+                       continue;
+#else 
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
                                         errmsg("word is too long")));
+#endif
+               }
 
                hladdword(prs, lemm, lenlemm, type);