On Tue, May 25, 2010 at 10:55 AM, Merlin Moncure <mmoncure@xxxxxxxxx> wrote: > On Tue, May 25, 2010 at 9:41 AM, Tyler Hildebrandt > <tyler@xxxxxxxxxxxxxxxxxx> wrote: >>> I think, your problem is here: >>> >>> SELECT INTO current_user * FROM >>> fn_medirota_validate_rota_master(in_currentuser); >>> >>> >>> The planner has no knowledge about how many rows this functions returns >>> if he don't know the actual parameter. Because of this, this query >>> enforce a seq-scan. Try to rewrite that to something like: >>> >>> execute 'select * from fn_medirota_validate_rota_master(' || >>> in_currentuser' || ')' into current_user >>> >> >> Thanks for your response. This doesn't seem to solve our issue, unfortunately. >> >> As a side to that, we have the fn_medirota_validate_rota_master calls in a >> large amount of our other functions that are running very well. > > any chance of seeing the function source? oops! I missed it :-). looking at your function, what version of postgres? have you experimented w/return query? merlin -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance