Repair bug #4926 "too few pathkeys for mergeclauses". This example shows
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 17 Jul 2009 23:19:34 +0000 (23:19 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 17 Jul 2009 23:19:34 +0000 (23:19 +0000)
commitfb18055998f1f0256f827fe5de77b5d3369a9f21
tree90a7275dac87b8082d2f4b2b73f1d6405ecef02b
parentf5bc74192d2ffb32952a06c62b3458d28ff7f98f
Repair bug #4926 "too few pathkeys for mergeclauses".  This example shows
that the sanity checking I added to create_mergejoin_plan() in 8.3 was a
few bricks shy of a load: the mergeclauses could reference pathkeys in a
noncanonical order such as x,y,x, not only cases like x,x,y which is all
that the code had allowed for.  The odd cases only turn up when using
redundant clauses in an outer join condition, which is why no one had
noticed before.
src/backend/optimizer/path/pathkeys.c
src/backend/optimizer/plan/createplan.c
src/test/regress/expected/join.out
src/test/regress/sql/join.sql