]> granicus.if.org Git - postgresql/commit
Speed up in-memory tuplesorting.
authorRobert Haas <rhaas@postgresql.org>
Wed, 15 Feb 2012 17:13:32 +0000 (12:13 -0500)
committerRobert Haas <rhaas@postgresql.org>
Wed, 15 Feb 2012 17:13:32 +0000 (12:13 -0500)
commit337b6f5ecf05b21b5e997986884d097d60e4e3d0
tree09343650efe3ba295c204c421e71294b20c6a1e6
parentac9100f8cf595f7512e98fc5c6338ee3e32a0651
Speed up in-memory tuplesorting.

Per recent work by Peter Geoghegan, it's significantly faster to
tuplesort on a single sortkey if ApplySortComparator is inlined into
quicksort rather reached via a function pointer.  It's also faster
in general to have a version of quicksort which is specialized for
sorting SortTuple objects rather than objects of arbitrary size and
type.  This requires a couple of additional copies of the quicksort
logic, which in this patch are generate using a Perl script.  There
might be some benefit in adding further specializations here too,
but thus far it's not clear that those gains are worth their weight
in code footprint.
src/backend/Makefile
src/backend/utils/sort/.gitignore [new file with mode: 0644]
src/backend/utils/sort/Makefile
src/backend/utils/sort/gen_qsort_tuple.pl [new file with mode: 0644]
src/backend/utils/sort/tuplesort.c
src/port/qsort.c
src/port/qsort_arg.c
src/tools/msvc/Solution.pm