Thread: pgsql: Repair bug #4926 "too few pathkeys for mergeclauses".
pgsql: Repair bug #4926 "too few pathkeys for mergeclauses".
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- 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. Modified Files: -------------- pgsql/src/backend/optimizer/path: pathkeys.c (r1.97 -> r1.98) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/pathkeys.c?r1=1.97&r2=1.98) pgsql/src/backend/optimizer/plan: createplan.c (r1.260 -> r1.261) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/createplan.c?r1=1.260&r2=1.261) pgsql/src/test/regress/expected: join.out (r1.36 -> r1.37) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/join.out?r1=1.36&r2=1.37) pgsql/src/test/regress/sql: join.sql (r1.27 -> r1.28) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/join.sql?r1=1.27&r2=1.28)