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)
commit50af49089c4958578b5241f865ff82b4880b8466
tree86a061126e123b45d165e049943a392357bed1a8
parent0619a832b0c8cbd2a3a327618a6c7680a4f3513c
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