5369 Neeraj Bisht 2013-01-14 [merge]
Merge from 5.5 to 5.6
5368 Marko Mäkelä 2013-01-14
Bug#15920744 USE STD::SORT WHEN POSSIBLE
Replace the InnoDB homebrew UT_SORT_FUNCTION_BODY (a recursive merge
sort) with the C++ STL std::sort() in most places, because the latter
needs less memory (avoiding a second copy of the array, and avoiding
recursion) and is faster due to inlined execution.
The row_merge_buf_sort() of CREATE INDEX will be kept as is, because
both std::sort() or qsort_r() can apparently cause more calls to our
costly tuple comparison routine. That is, the results vary depending
on the table and index definition, and on the compilation flags.
cmp_data_data_slow(): Replace with cmp_data_data().
buf_dump_cmp(), buf_dump_sort(): Replace with std::sort().
ut_ulint_sort(): Replace with std::sort().
page_zip_dir_cmp(), page_zip_dir_sort(): Replace with std::sort().
page_zip_dir_decode(): Remove recs_aux[].
rb#1844 approved by Jimmy Yang
modified:
storage/innobase/buf/buf0dump.cc
storage/innobase/include/rem0cmp.h
storage/innobase/include/rem0cmp.ic
storage/innobase/include/ut0ut.h
storage/innobase/page/page0cur.cc
storage/innobase/page/page0zip.cc
storage/innobase/rem/rem0cmp.cc
storage/innobase/trx/trx0rseg.cc
storage/innobase/ut/ut0ut.cc
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk branch (neeraj.x.bisht:5368 to 5369) | Neeraj Bisht | 18 Feb 2013 |