Dette ser ud til at være et tilfælde af en pilotfejl. "v"-forespørgselsplanen vælger fra mindst 5 forskellige tabeller.
Nu, er du sikker på, at du er forbundet til den rigtige database? Måske er der nogle funky search_path-indstillinger? Måske er t1 og t2 faktisk visninger (muligvis i et andet skema)? Måske du på en eller anden måde vælger fra den forkerte visning?
Redigeret efter præcisering:
Du bruger en helt ny funktion kaldet "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
Det ser ud til, at funktionen ikke slår ind, når fagforeningen alle er involveret. Du er sandsynligvis nødt til at omskrive visningen ved kun at bruge de påkrævede to tabeller.
en anden redigering:Det ser ud til, at du bruger et aggregat (som "vælg antal(*) fra v" vs. "vælg * fra v"), som kunne få vidt forskellige planer i forhold til fjernelse af joinforbindelser. Jeg gætter på, at vi ikke kommer ret langt, uden at du sender de faktiske forespørgsler, visninger og tabeldefinitioner og -planer, der er brugt...