Ini tampaknya menjadi kasus kesalahan pilot. Paket kueri "v" memilih dari setidaknya 5 tabel berbeda.
Sekarang, Apakah Anda yakin Anda terhubung ke database yang benar? Mungkin ada beberapa pengaturan search_path yang funky? Mungkin t1 dan t2 sebenarnya adalah tampilan (mungkin dalam skema yang berbeda)? Mungkin Anda entah bagaimana memilih dari pandangan yang salah?
Diedit setelah klarifikasi:
Anda menggunakan fitur baru yang disebut "join removal" :http:// wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.0#Join_Removal
http://rhaas.blogspot.com/2010 /06/why-join-removal-is-cool.html
Tampaknya fitur tersebut tidak berfungsi saat penyatuan semua terlibat. Anda mungkin harus menulis ulang tampilan hanya menggunakan dua tabel yang diperlukan.
suntingan lain:Anda tampaknya menggunakan agregat (seperti "select count(*) from v" vs. "select * from v"), yang bisa mendapatkan rencana yang sangat berbeda dalam menghadapi penghapusan gabungan. Saya kira kita tidak akan melangkah terlalu jauh tanpa Anda memposting kueri aktual, tampilan dan definisi tabel serta rencana yang digunakan...