Tom Lane wrote: > Benoit Delbosc<bdelbosc@xxxxxxxxx> writes: >> On 13/04/2012 00:25, Tom Lane wrote: >>> Is there a reason why you're writing the query in such a >>> non-straightforward way, rather than just >>> >>> EXPLAIN ANALYZE SELECT hierarchy.id >>> FROM hierarchy >>> JOIN fulltext ON fulltext.id = hierarchy.id >>> WHERE (TO_TSQUERY('whatever') @@ nx_to_tsvector(fulltext.fulltext)) >>> OR (TO_TSQUERY('whatever') @@ nx_to_tsvector(fulltext.fulltext_title)); >> >> This query is written by a framework, also I thought that is a common >> pattern that can be found in the documentation: >> http://www.postgresql.org/docs/9.1/interactive/textsearch-controls.html > > Well, "common pattern" would be stretching it. Anyway I've concluded > that this is in fact a planner bug. There will be a fix in 9.2, but I'm > not going to take the risk of back-patching it, so you might want to > think about changing that framework. FYI the reason why we have queries that look like what Benoit describes is that we often use the query alias twice, once for TO_TSVECTOR and once for TS_RANK_CD, for instance: SELECT hierarchy.id, TS_RANK_CD(fulltext, query1, 32) as nxscore FROM hierarchy JOIN fulltext ON fulltext.id = hierarchy.id, TO_TSQUERY('whatever') query1, TO_TSQUERY('whatever') query2 WHERE (query1 @@ nx_to_tsvector(fulltext.fulltext)) OR (query2 @@ nx_to_tsvector(fulltext.fulltext_title)) ORDER BY nxscore DESC; (as is also described in the doc mentioned btw). Florent -- Florent Guillaume, Director of R&D, Nuxeo Open Source, Java EE based, Enterprise Content Management (ECM) http://www.nuxeo.com ; http://www.nuxeo.org ; +33 1 40 33 79 87 -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance