Giải thích của @ A.H là chính xác cho PostgreSQL 9.1 trở lên . Vì vậy, nó có thể áp dụng cho OP, người đang sử dụng phiên bản 8.3 đã lỗi thời.
Tuy nhiên, PostgreSQL 9.2 đã mang lại một bản cập nhật đáng kể trong lĩnh vực này. Các hàm PL / pgSQL đã trở nên thông minh hơn rất nhiều về thời điểm lập kế hoạch lại. Tôi đang trích dẫn ghi chú phát hành cho 9.2 tại đây
Nhấn mạnh đậm của tôi.
Ergo:Một giải pháp cho OP sẽ là nâng cấp lên PostgreSQL 9.2+ và mọi thứ sẽ tự động hoạt động tốt.