]> granicus.if.org Git - postgresql/commit
Fix handling of sortKeys field in Tuplesortstate.
authorRobert Haas <rhaas@postgresql.org>
Mon, 9 Mar 2015 14:35:41 +0000 (10:35 -0400)
committerRobert Haas <rhaas@postgresql.org>
Mon, 9 Mar 2015 14:35:41 +0000 (10:35 -0400)
commit2720e96a9bd58b2af177c714c0c5402773e1cf30
treebdcda4bf5165df903e9efc5bf9ddffd3828e83d2
parentf1fd515b393a283d7368ce45a92709d2c7f9a991
Fix handling of sortKeys field in Tuplesortstate.

Commit 5cefbf5a6c4466ac6b1cc2a4316b4eba9108c802 introduced an
assumption that this field would always be non-NULL when doing a merge
pass, but that's not true.  Without this fix, you can crash the server
by building a hash index that is sufficiently large relative to
maintenance_work_mem, or by triggering a large datum sort.

Commit 5ea86e6e65dd2da3e9a3464484985d48328e7fe3 changed the comments
for that field to say that it would be set in all cases except for the
hash index case, but that wasn't (and still isn't) true.

The datum-sort failure was spotted by Tomas Vondra; initial analysis
of that failure was by Peter Geoghegan.  The remaining issues were
spotted by me during review of the surrounding code, and the patch is
all my fault.
src/backend/utils/sort/tuplesort.c