Simon Riggs wrote:
i.e. if we have partitions for each year (2001, 2002, 2003 2004, 2005, 2006, 2007) AND we have already proved that 2005 is excluded when we have a WHERE clause saying year >= 2006, then we should be able to use the ordering to prove that partitions for 2004 and before are also automatically excluded.
Provided you've set up the right constraints, the current constraint_exclusion feature does exactly that, no?
I'll think some more about the Merge node, but not right now.
I've looked at nodeAppend.c and nodeMergeJoin.c. Probably we can use much of nodeMergeJoin, just without the join? Instead returning the tuples as they are, but in the correct order. The nodeMergeJoin code can only handle two inputs (a left and a right node), but it might be beneficial to structure multiple merge nodes into a binary tree layout anyway. (I'm guessing that might reduce the amount of comparisons needed).
What do you think? Regards Markus ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster