Ah, I understand now. We can lie to the executor about the order, because when we are moving based on the second outer column, we have a stretch of equal values in the inner column, so we can consider them to be sorted whatever way we need.

The patch applies cleanly, make check-world passes.

In create_mergejoin_plan:
    * implied inner ordering is then "ORDER BY x, y, x", but the pathkey
    * drops the second sort by x as redundant, and this code must cope.
-- should this read "the pathkey machinery drops"?

Alexander Kuzmenkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Reply via email to