Tweak sorting so that nulls appear at the front of a descending sort
Tom Lane <tgl@sss.pgh.pa.us>
Tweak sorting so that nulls appear at the front of a descending sort (vs. at the end of a normal sort). This ensures that explicit sorts yield the same ordering as a btree index scan. To be really sure that that equivalence holds, we use the btree entries in pg_amop to decide whether we are looking at a '<' or '>' operator. For a sort operator that has no btree association, we put the nulls at the front if the operator is named '>' ... pretty grotty, but it does the right thing in simple ASC and DESC cases, and at least there's no possibility of getting a different answer depending on the plan type chosen.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/commands/analyze.c | modified | +6 −21 |
| src/backend/utils/sort/tuplesort.c | modified | +126 −105 |
| src/include/utils/tuplesort.h | modified | +12 −1 |