Fix a couple of planner bugs introduced by the new ability to discard
Tom Lane <tgl@sss.pgh.pa.us>
Fix a couple of planner bugs introduced by the new ability to discard ORDER BY <constant> as redundant. One is that this means query_planner() has to canonicalize pathkeys even when the query jointree is empty; the canonicalization was always a no-op in such cases before, but no more. Also, we have to guard against thinking that a set-returning function is "constant" for this purpose. Add a couple of regression tests for these evidently under-tested cases. Per report from Greg Stark and subsequent experimentation.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/path/equivclass.c | modified | +9 −7 |
| src/backend/optimizer/plan/planmain.c | modified | +13 −1 |
| src/test/regress/expected/select.out | modified | +32 −0 |
| src/test/regress/sql/select.sql | modified | +16 −0 |