In response to Yan Cheng Cheok : > As you can see, their select statement is the same. Except stored > procedure is having additional 'QUERY'. Does that make the speed > difference? No. The problem is, the planner don't know the actual parameters. Therefore the planner picked out a wrong plan (seq-scan instead of index-scan). You can avoid this by rewrite your function: use a dynamic query, use EXECUTE. Read more: http://www.postgresql.org/docs/8.4/interactive/plpgsql-control-structures.html Chapter 38.6.1.2. RETURN NEXT and RETURN QUERY Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431 2EB0 389D 1DC2 3172 0C99 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general