Gregory Stark <[EMAIL PROTECTED]> writes:
> What if the equivalence class is in more than one place in the ORDER BY? 

That's not a problem.  ORDER BY 1,1 is not different from ORDER BY 1,
even if the referenced expression is volatile, because the secondary
sort key is useless anyway.

> And what would happen when you pull up subqueries?

I think I know how to deal with that.  The worst case would be that

        select * from (select random() as a from foo order by a) ss
        order by ss.a

would incur two sorts instead of one because we fail to acknowledge the
subquery's sort key as being the same thing as the upper query's.  It
*should* be possible to avoid that, but if it gets too complicated I'll
leave it on the table for 8.4.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to