X-Git-Url: https://git.tld-linux.org/?p=packages%2Fmysql.git;a=blobdiff_plain;f=mysql-system-xxhash.patch;h=5d1fc10788ab4d234df0b3139c732bc0b31a88aa;hp=9ca55141367f81d0bca745b2ecf963683a411080;hb=fc6ec779771b0ad7c2c8b46475a46deae4866bef;hpb=0204681216a80b2555e050f24f5ff4d1e947d15a diff --git a/mysql-system-xxhash.patch b/mysql-system-xxhash.patch index 9ca5514..5d1fc10 100644 --- a/mysql-system-xxhash.patch +++ b/mysql-system-xxhash.patch @@ -1,6 +1,26 @@ ---- mysql-8.0.30/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc 2022-10-09 14:33:34.598098038 +0200 -@@ -126,7 +126,7 @@ Gcs_sender_id calculate_sender_id(const +diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt mysql-8.2.0/plugin/group_replication/libmysqlgcs/CMakeLists.txt +--- mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/CMakeLists.txt 2023-12-18 01:19:34.054277743 +0100 ++++ mysql-8.2.0/plugin/group_replication/libmysqlgcs/CMakeLists.txt 2023-12-18 01:20:07.130718562 +0100 +@@ -137,7 +137,6 @@ + src/bindings/xcom/gcs_xcom_statistics_interface.cc + src/bindings/xcom/gcs_xcom_proxy.cc + src/bindings/xcom/gcs_xcom_communication_protocol_changer.cc +- ${BUNDLED_LZ4_PATH}/xxhash.c # required by gcs_message_stage_split + src/bindings/xcom/gcs_message_stage_split.cc + src/bindings/xcom/gcs_xcom_synode.cc + src/bindings/xcom/gcs_xcom_expels_in_progress.cc +@@ -235,6 +234,7 @@ + # Dependency on mysys from gcs_logging_system.cc + # but pick up symbols from the server: + # TARGET_LINK_LIBRARIES(mysqlgcs mysys) ++TARGET_LINK_LIBRARIES(mysqlgcs xxhash) + + IF(LINUX AND WITH_TIRPC STREQUAL "bundled") + ADD_DEPENDENCIES(mysqlgcs tirpc_ext) +diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc +--- mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc 2023-12-18 01:19:34.056277770 +0100 ++++ mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_message_stage_split.cc 2023-12-18 01:20:07.117718388 +0100 +@@ -126,7 +126,7 @@ std::string info(node.get_member_id().get_member_id()); info.append(node.get_member_uuid().actual_value); @@ -9,8 +29,9 @@ } bool Gcs_message_stage_split_v2::update_members_information( ---- mysql-8.0.30/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h 2022-10-09 08:41:35.109178797 +0200 +diff -ur mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h +--- mysql-8.2.0.orig/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h 2023-12-18 01:19:34.068277930 +0100 ++++ mysql-8.2.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xxhash.h 2023-12-18 01:20:07.130718562 +0100 @@ -25,10 +25,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -23,27 +44,10 @@ +#include #endif // GCS_XXHASH_H_INCLUDED ---- mysql-8.0.30/plugin/group_replication/libmysqlgcs/CMakeLists.txt.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/plugin/group_replication/libmysqlgcs/CMakeLists.txt 2022-10-09 08:42:55.768741827 +0200 -@@ -140,7 +140,6 @@ SET(GCS_SOURCES - src/bindings/xcom/gcs_xcom_statistics_interface.cc - src/bindings/xcom/gcs_xcom_proxy.cc - src/bindings/xcom/gcs_xcom_communication_protocol_changer.cc -- ${BUNDLED_LZ4_PATH}/xxhash.c # required by gcs_message_stage_split - src/bindings/xcom/gcs_message_stage_split.cc - src/bindings/xcom/gcs_xcom_synode.cc - src/bindings/xcom/gcs_xcom_expels_in_progress.cc) -@@ -219,6 +218,7 @@ ADD_LIBRARY(mysqlgcs STATIC ${XCOM_SOURC - # Dependency on mysys from gcs_logging_system.cc - # but pick up symbols from the server: - # TARGET_LINK_LIBRARIES(mysqlgcs mysys) -+TARGET_LINK_LIBRARIES(mysqlgcs xxhash) - - IF(CMAKE_VERSION VERSION_GREATER "3.19" AND NOT APPLE_XCODE) - # New in version 3.19: ---- mysql-8.0.30/sql/CMakeLists.txt.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/sql/CMakeLists.txt 2022-10-09 08:53:20.935355008 +0200 -@@ -755,7 +755,6 @@ SET(SQL_SOURCE +diff -ur mysql-8.2.0.orig/sql/CMakeLists.txt mysql-8.2.0/sql/CMakeLists.txt +--- mysql-8.2.0.orig/sql/CMakeLists.txt 2023-12-18 01:19:34.892288911 +0100 ++++ mysql-8.2.0/sql/CMakeLists.txt 2023-12-18 01:22:41.637779746 +0100 +@@ -766,7 +766,6 @@ ${CONF_SOURCES} ${SQL_SHARED_SOURCES} ${SQL_HEADERS} @@ -51,7 +55,7 @@ ../libmysql/errmsg.cc ../sql-common/client.cc ../sql-common/client_plugin.cc -@@ -813,11 +812,6 @@ IF(WIN32) +@@ -831,11 +830,6 @@ ) ENDIF() @@ -63,13 +67,14 @@ # Workaround for Apple Clang bug on ARM. # When linking mysqld (and executables using server_unittest_library) # we get linker warnings about -@@ -842,13 +836,6 @@ IF(APPLE_ARM) +@@ -860,14 +854,6 @@ ) ENDIF() -ADD_COMPILE_FLAGS( - ${BUNDLED_LZ4_PATH}/xxhash.c - iterators/hash_join_iterator.cc +- iterators/composite_iterators.cc - rpl_write_set_handler.cc - COMPILE_FLAGS -I${CMAKE_SOURCE_DIR}/extra/lz4 -I${BUNDLED_LZ4_PATH} - ) @@ -77,17 +82,102 @@ # Fixes "C1128: number of sections exceeded object file format limit" in MSVC IF(WIN32) ADD_COMPILE_FLAGS( -@@ -924,7 +911,7 @@ ADD_DEPENDENCIES(sql_main GenBootstrapPr - ADD_DEPENDENCIES(sql_main GenSysSchema) +@@ -961,7 +947,7 @@ + TARGET_LINK_LIBRARIES(sql_main ${MYSQLD_STATIC_PLUGIN_LIBS} mysql_server_component_services mysys strings vio -- binlogevents_static ${LIBWRAP} ${LIBDL} ${SSL_LIBRARIES}) -+ binlogevents_static xxhash ${LIBWRAP} ${LIBDL} ${SSL_LIBRARIES}) +- mysql_binlog_event ${LIBWRAP} ${LIBDL} OpenSSL::SSL OpenSSL::Crypto ++ mysql_binlog_event xxhash ${LIBWRAP} ${LIBDL} OpenSSL::SSL OpenSSL::Crypto + extra::rapidjson) # sql/immutable_string.h uses - # google::protobuf::io::CodedOutputStream::WriteVarint64ToArray ---- mysql-8.0.30/sql/iterators/hash_join_iterator.cc.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/sql/iterators/hash_join_iterator.cc 2022-10-09 17:45:57.618897459 +0200 +diff -ur mysql-8.2.0.orig/sql/iterators/composite_iterators.cc mysql-8.2.0/sql/iterators/composite_iterators.cc +--- mysql-8.2.0.orig/sql/iterators/composite_iterators.cc 2023-12-18 01:19:35.299294336 +0100 ++++ mysql-8.2.0/sql/iterators/composite_iterators.cc 2023-12-18 02:13:09.216002357 +0100 +@@ -35,7 +35,7 @@ + #include "my_dbug.h" + #include "my_inttypes.h" + #include "my_sys.h" +-#include "my_xxhash.h" ++#include + #include "mysqld_error.h" + #include "prealloced_array.h" + #include "scope_guard.h" +@@ -2255,7 +2255,7 @@ + const ulonglong primary_hash = + static_cast(m_materialized_table->hash_field->val_int()); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + m_offending_row.m_chunk_offset = chunk_offset(chunk_index); +@@ -2331,7 +2331,7 @@ + const ulonglong primary_hash = + static_cast(m_materialized_table->hash_field->val_int()); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + const size_t set_index = chunk_index_to_set(chunk_index); + const size_t offset = chunk_offset(chunk_index); +@@ -2396,7 +2396,7 @@ + const ulonglong primary_hash = + static_cast(m_materialized_table->hash_field->val_int()); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + const size_t set_index = chunk_index_to_set(chunk_index); + const size_t offset = chunk_offset(chunk_index); +@@ -2491,7 +2491,7 @@ + m_materialized_table->hash_field->store( + static_cast(primary_hash), true); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + const size_t set_index = chunk_index_to_set(chunk_index); + const size_t offset = chunk_offset(chunk_index); +@@ -2548,7 +2548,7 @@ + const ulonglong primary_hash = + static_cast(m_materialized_table->hash_field->val_int()); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + const size_t set_index = chunk_index_to_set(chunk_index); + assert(chunk_offset(chunk_index) == chunk_idx); +@@ -2787,7 +2787,7 @@ + const ulonglong primary_hash = static_cast( + m_materialized_table->hash_field->val_int()); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + const size_t set_index = chunk_index_to_set(chunk_index); + assert(chunk_offset(chunk_index) == m_current_chunk_idx); +@@ -2820,7 +2820,7 @@ + const ulonglong primary_hash = static_cast( + m_materialized_table->hash_field->val_int()); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + assert(chunk_index_to_set(chunk_index) == set_idx); + assert(chunk_offset(chunk_index) == m_current_chunk_idx); +@@ -2909,7 +2909,7 @@ + const ulonglong primary_hash = static_cast( + m_materialized_table->hash_field->val_int()); + const uint64_t chunk_hash = +- MY_XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); ++ XXH64(&primary_hash, sizeof(primary_hash), m_hash_seed); + const size_t chunk_index = hash_to_chunk_index(chunk_hash); + assert(chunk_index_to_set(chunk_index) == set_idx); + assert(chunk_offset(chunk_index) == m_current_chunk_idx); +diff -ur mysql-8.2.0.orig/sql/iterators/hash_join_iterator.cc mysql-8.2.0/sql/iterators/hash_join_iterator.cc +--- mysql-8.2.0.orig/sql/iterators/hash_join_iterator.cc 2023-12-18 01:19:35.299294336 +0100 ++++ mysql-8.2.0/sql/iterators/hash_join_iterator.cc 2023-12-18 01:20:07.132718589 +0100 @@ -32,7 +32,7 @@ #include "field_types.h" #include "my_alloc.h" @@ -97,7 +187,7 @@ #include "my_inttypes.h" #include "my_sys.h" -@@ -307,7 +307,7 @@ static bool WriteRowToChunk( +@@ -356,7 +356,7 @@ const uint64_t join_key_hash = join_key_and_row_buffer->length() == 0 ? kZeroKeyLengthHash @@ -106,18 +196,19 @@ join_key_and_row_buffer->length(), xxhash_seed); assert((chunks->size() & (chunks->size() - 1)) == 0); ---- mysql-8.0.30/sql/rpl_write_set_handler.cc.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/sql/rpl_write_set_handler.cc 2022-10-09 20:07:41.099496817 +0200 -@@ -37,7 +37,7 @@ +diff -ur mysql-8.2.0.orig/sql/rpl_write_set_handler.cc mysql-8.2.0/sql/rpl_write_set_handler.cc +--- mysql-8.2.0.orig/sql/rpl_write_set_handler.cc 2023-12-18 01:19:35.612298508 +0100 ++++ mysql-8.2.0/sql/rpl_write_set_handler.cc 2023-12-18 01:23:09.729155640 +0100 +@@ -36,7 +36,7 @@ #include "my_dbug.h" #include "my_inttypes.h" #include "my_murmur3.h" // murmur3_32 -#include "my_xxhash.h" // IWYU pragma: keep +#include + #include "mysql/strings/m_ctype.h" #include "mysql_com.h" #include "sql-common/json_binary.h" - #include "sql-common/json_dom.h" -@@ -75,7 +75,7 @@ uint64 calc_hash(ulong algorithm, type T +@@ -75,7 +75,7 @@ if (algorithm == HASH_ALGORITHM_MURMUR32) return (murmur3_32((const uchar *)T, len, 0)); else @@ -126,18 +217,19 @@ } #ifndef NDEBUG ---- mysql-8.0.30/unittest/gunit/hash_join-t.cc.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/unittest/gunit/hash_join-t.cc 2022-10-09 20:36:43.693389709 +0200 -@@ -28,7 +28,7 @@ - - #include "include/my_murmur3.h" - #include "my_alloc.h" +diff -ur mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc mysql-8.2.0/unittest/gunit/hash_join-t.cc +--- mysql-8.2.0.orig/unittest/gunit/hash_join-t.cc 2023-12-18 01:19:41.381375395 +0100 ++++ mysql-8.2.0/unittest/gunit/hash_join-t.cc 2023-12-18 01:20:51.800313888 +0100 +@@ -37,7 +37,7 @@ + #include "my_config.h" + #include "my_inttypes.h" + #include "my_murmur3.h" -#include "my_xxhash.h" +#include - #include "sql/item_cmpfunc.h" - #include "sql/iterators/hash_join_buffer.h" - #include "sql/iterators/hash_join_iterator.h" -@@ -204,7 +204,7 @@ static void BM_XXHash64ShortData(size_t + #include "mysql/components/services/bits/psi_bits.h" + #include "prealloced_array.h" + #include "sql/field.h" +@@ -226,7 +226,7 @@ size_t sum = 0; for (size_t i = 0; i < num_iterations; ++i) { @@ -146,7 +238,7 @@ } StopBenchmarkTiming(); -@@ -223,7 +223,7 @@ static void BM_XXHash64LongData(size_t n +@@ -245,7 +245,7 @@ size_t sum = 0; for (size_t i = 0; i < num_iterations; ++i) { @@ -155,8 +247,9 @@ } StopBenchmarkTiming(); ---- mysql-8.0.30/unittest/gunit/innodb/ut0rnd-t.cc.orig 2022-07-06 23:36:34.000000000 +0200 -+++ mysql-8.0.30/unittest/gunit/innodb/ut0rnd-t.cc 2022-10-09 20:46:00.157041753 +0200 +diff -ur mysql-8.2.0.orig/unittest/gunit/innodb/ut0rnd-t.cc mysql-8.2.0/unittest/gunit/innodb/ut0rnd-t.cc +--- mysql-8.2.0.orig/unittest/gunit/innodb/ut0rnd-t.cc 2023-12-18 01:19:41.600378312 +0100 ++++ mysql-8.2.0/unittest/gunit/innodb/ut0rnd-t.cc 2023-12-18 01:20:07.134718615 +0100 @@ -33,7 +33,7 @@ #include "storage/innobase/include/ut0crc32.h" #include "storage/innobase/include/ut0rnd.h"