Sam Mason <[EMAIL PROTECTED]> writes: > Here's a bad example: > SELECT u.txt > FROM smalltable t, ( > SELECT id, txt FROM largetable1 > UNION ALL > SELECT id, txt FROM largetable2) u > WHERE t.id = u.id > AND t.foo = 'bar';
> I was hoping that "smalltable" would get moved up into the union, > but it doesn't at the moment and the database does a LOT of extra > work. I'm afraid we're a long way away from being able to do that; the parse/plan representation of UNION wasn't chosen with an eye to being able to optimize it at all :-(. We can push restriction clauses down into a union, but we can't do much with join clauses, because they necessarily refer to tables that don't even exist within the sub-query formed by the UNION. It'd be nice to fix this someday, but don't hold your breath ... regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org