plpgsql and index usage

Started by Ryan Mahoneyover 23 years ago1 messageshackers
Jump to latest
#1Ryan Mahoney
ryan@flowlabs.com

The following statements do not utilize an index when executed inside a
plpgsql procedure, but does when executed interactively in psql!

Does not use index:

FOR somemorerows IN
SELECT zipcode_list
FROM pa_zipcode_proximity
WHERE zipcode = zipcode_in
AND proximity <= proximity_range_in
LOOP
zipcodes := zipcodes || '','' || somemorerows.zipcode_list;
END LOOP;

However:
SELECT zipcode_list
FROM pa_zipcode_proximity
WHERE zipcode = zipcode_in
AND proximity <= proximity_range_in;

Does use the index! zipcode_list and zipcode are text, proximity is an
integer. There is a primary key on zipcode and proximity. We are using
PostgreSQL 7.3 on i686-pc-linux-gnu, compiled by GCC 2.96. Any ideas?
We have recently done a vacuum full and analyze.

Any help is much appreciated!

-r

--
Ryan Mahoney
ryan@flowlabs.com
(718)721-8790

"Tomorrow's Company. Today's Budget."
http://www.flowlabs.com