• Tom Lane's avatar
    Tweak tsmatchsel() so that it examines the structure of the tsquery whenever · b8c798eb
    Tom Lane authored
    possible (ie, whenever the tsquery is a constant), even when no statistics
    are available for the tsvector.  For example, foo @@ 'a & b'::tsquery
    can be expected to be more selective than foo @@ 'a'::tsquery, whether
    or not we know anything about foo.  We use DEFAULT_TS_MATCH_SEL as the assumed
    selectivity of individual query terms when no stats are available, then
    combine the terms according to the query's AND/OR structure as usual.
    
    Per experimentation with Artur Dabrowski's example.  (The fact that there
    are no stats available in that example is a problem in itself, but
    nonetheless tsmatchsel should be smarter about the case.)
    
    Back-patch to 8.4 to keep all versions of tsmatchsel() in sync.
    b8c798eb
ts_selfuncs.c 9.55 KB