Robert Fitzpatrick <[EMAIL PROTECTED]> writes: > trax=# explain analyze select * from client_search_id_func(62) left join > tblsearch_selections ON search_id = 62 and user_id = 'RF' and > ((selected_value = clientno and selection_type = 'client') or (selected_value > = contactno and selection_type = 'contact'));
I don't think you're going to get anywhere until you get rid of the OR-of-ANDs join condition; the OR defeats using any reasonably intelligent join method such as a merge or hash join. You should redesign the set-returning function to emit a representation that matches the table you want to search, or perhaps rethink the table's representation. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org/