pgsql: improve support of agglutinative languages (query with compound - Mailing list pgsql-committers

From teodor@svr1.postgresql.org (Teodor Sigaev)
Subject pgsql: improve support of agglutinative languages (query with compound
Date
Msg-id 20050125152440.B65363A571B@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
improve support of agglutinative languages (query with compound words).

regression=# select to_tsquery( '\'fotballklubber\'');
                   to_tsquery
------------------------------------------------
 'fotball' & 'klubb' | 'fot' & 'ball' & 'klubb'
(1 row)

So, changed interface to dictionaries, lexize method of dictionary shoud return
pointer to aray of TSLexeme structs instead of char**. Last element should
have TSLexeme->lexeme == NULL.

typedef struct {
        /* number of variant of split word , for example
                Word 'fotballklubber' (norwegian) has two varian to split:
                ( fotball, klubb ) and ( fot, ball, klubb ). So, dictionary
                should return:
                nvariant        lexeme
                1               fotball
                1               klubb
                2               fot
                2               ball
                2               klubb

        */
        uint16  nvariant;

        /* currently unused */
        uint16  flags;

        /* C-string */
        char    *lexeme;
} TSLexeme;

Modified Files:
--------------
    pgsql/contrib/tsearch2:
        dict.c (r1.6 -> r1.7)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict.c.diff?r1=1.6&r2=1.7)
        dict.h (r1.2 -> r1.3)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict.h.diff?r1=1.2&r2=1.3)
        dict_ex.c (r1.3 -> r1.4)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_ex.c.diff?r1=1.3&r2=1.4)
        dict_ispell.c (r1.5 -> r1.6)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_ispell.c.diff?r1=1.5&r2=1.6)
        dict_snowball.c (r1.3 -> r1.4)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_snowball.c.diff?r1=1.3&r2=1.4)
        dict_syn.c (r1.4 -> r1.5)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/dict_syn.c.diff?r1=1.4&r2=1.5)
        query.c (r1.12 -> r1.13)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/query.c.diff?r1=1.12&r2=1.13)
        ts_cfg.c (r1.11 -> r1.12)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ts_cfg.c.diff?r1=1.11&r2=1.12)
        ts_cfg.h (r1.4 -> r1.5)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ts_cfg.h.diff?r1=1.4&r2=1.5)
    pgsql/contrib/tsearch2/gendict:
        dict_tmpl.c.IN (r1.2 -> r1.3)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/gendict/dict_tmpl.c.IN.diff?r1=1.2&r2=1.3)
    pgsql/contrib/tsearch2/ispell:
        spell.c (r1.18 -> r1.19)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ispell/spell.c.diff?r1=1.18&r2=1.19)
        spell.h (r1.8 -> r1.9)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ispell/spell.h.diff?r1=1.8&r2=1.9)

pgsql-committers by date:

Previous
From: meskes@svr1.postgresql.org (Michael Meskes)
Date:
Subject: pgsql: Fixed segfault due to freeing a struct definition twice if it was
Next
From: petere@svr1.postgresql.org (Peter Eisentraut)
Date:
Subject: pgsql: Translation update