Thread: pgsql: Tweak tsmatchsel() so that it examines the structure of the
pgsql: Tweak tsmatchsel() so that it examines the structure of the
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- Tweak tsmatchsel() so that it examines the structure of the tsquery whenever 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. Tags: ---- REL8_4_STABLE Modified Files: -------------- pgsql/src/backend/tsearch: ts_selfuncs.c (r1.4 -> r1.4.2.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/tsearch/ts_selfuncs.c?r1=1.4&r2=1.4.2.1)