Fix caching of unsuccessful initialization of parser or configuration.
authorTeodor Sigaev <teodor@sigaev.ru>
Mon, 2 Apr 2007 11:43:11 +0000 (11:43 +0000)
committerTeodor Sigaev <teodor@sigaev.ru>
Mon, 2 Apr 2007 11:43:11 +0000 (11:43 +0000)
Per report from Listmail <lists@peufeu.com>

contrib/tsearch2/ts_cfg.c
contrib/tsearch2/wparser.c

index ac8381904e614d9ab784cad1784b1356b56e2acf..1d5fef81370171489cec490a494651fe750ca917 100644 (file)
@@ -220,8 +220,8 @@ findcfg(Oid id)
        CList.reallen = reallen;
        CList.list = tmp;
    }
+   init_cfg(id, &(CList.list[CList.len]) );
    CList.last_cfg = &(CList.list[CList.len]);
-   init_cfg(id, CList.last_cfg);
    CList.len++;
    qsort(CList.list, CList.len, sizeof(TSCfgInfo), comparecfg);
    return findcfg(id); /* qsort changed order!! */ ;
index 39cd673bb0b43bd616ecca72389784a58d7f3e69..750bcbf07fbc85c43241e7f4827f70babbc8b792 100644 (file)
@@ -127,8 +127,8 @@ findprs(Oid id)
        PList.reallen = reallen;
        PList.list = tmp;
    }
+   init_prs(id, &(PList.list[PList.len]) );
    PList.last_prs = &(PList.list[PList.len]);
-   init_prs(id, PList.last_prs);
    PList.len++;
    qsort(PList.list, PList.len, sizeof(WParserInfo), compareprs);
    return findprs(id); /* qsort changed order!! */ ;