Penjelasan @A.H akurat untuk PostgreSQL 9.1 atau lebih lama . Jadi ini berlaku untuk OP yang menggunakan versi 8.3 yang sudah ketinggalan zaman.
Namun, PostgreSQL 9.2 membawa pembaruan substansial di bidang ini. Fungsi PL/pgSQL menjadi jauh lebih pintar tentang kapan harus merencanakan ulang. Saya mengutip catatan rilis untuk 9.2 di sini
Penekanan saya yang berani.
Ergo:Satu solusi untuk OP akan meningkatkan ke PostgreSQL 9.2+ dan semuanya akan bekerja dengan baik secara otomatis.