mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
b5d65fc105
MDEV-33502 Slowdown when running nested statement with many partitions This change was triggered to help some MariaDB users with close to 10000 bits in their bitmaps. - Change underlaying storage to be 64 bit instead of 32bit. - This reduses number of loops to scan bitmaps. - This can cause some bitmaps to be 4 byte large. - Ensure that all not used top-bits are always 0 (simplifes code as the last 64 bit storage is not a special case anymore). - Use my_find_first_bit() to find the first set bit which is much faster than scanning trough things byte by byte and then bit by bit. Other things: - Added a bool to remember if my_bitmap_init() did allocate the bitmap array. my_bitmap_free() will only free arrays it did allocate. This allowed me to remove setting 'bitmap=0' before calling my_bitmap_free() for cases where the bitmap's where allocated externally. - my_bitmap_init() sets bitmap to 0 in case of failure. - Added 'universal' asserts to most bitmap functions. - Change all remaining calls to bitmap_init() to my_bitmap_init(). - To finish the change from 2014. - Changed all usage of uint32 in my_bitmap.h to my_bitmap_map. - Updated bitmap_copy() to handle bitmaps of different size. - Removed const from bitmap_exists_intersection() as this caused casts on all usage. - Removed not used function bitmap_set_above(). - Renamed create_last_word_mask() to create_last_bit_mask() (to match name changes in my_bitmap.cc) - Extended bitmap-t with test for more bitmap functions. |
||
---|---|---|
.. | ||
build | ||
data | ||
lib | ||
mysql-test | ||
packages | ||
test | ||
tools | ||
udf | ||
vendor/groonga | ||
appveyor.yml | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
CMakeLists.txt | ||
config.sh.in | ||
configure.ac | ||
COPYING | ||
gpg_uid | ||
ha_mroonga.cpp | ||
ha_mroonga.def | ||
ha_mroonga.hpp | ||
Makefile.am | ||
mrn_constants.hpp | ||
mrn_err.h | ||
mrn_macro.hpp | ||
mrn_mysql.h | ||
mrn_mysql_compat.h | ||
mrn_table.cpp | ||
mrn_table.hpp | ||
mrn_variables.hpp | ||
mrn_version.h.in | ||
NEWS | ||
plugin_version | ||
README | ||
required_groonga_normalizer_mysql_version | ||
required_groonga_version | ||
sources.am | ||
version_full | ||
version_in_hex | ||
version_major | ||
version_micro | ||
version_minor |
See doc/locale/en/html/index.html or doc/locale/ja/html/index.html