diff --git a/mysql-alignment.patch b/mysql-alignment.patch new file mode 100644 index 0000000..1521a80 --- /dev/null +++ b/mysql-alignment.patch @@ -0,0 +1,29 @@ +diff --git a/sql/memory/aligned_atomic.h b/sql/memory/aligned_atomic.h +index 423366dab38..15638ed8963 100644 +--- a/sql/memory/aligned_atomic.h ++++ b/sql/memory/aligned_atomic.h +@@ -81,18 +81,19 @@ static inline size_t _cache_line_size() { + static inline size_t _cache_line_size() { + long size = sysconf(_SC_LEVEL1_DCACHE_LINESIZE); + if (size == -1) return 64; +-#if defined(__s390x__) +- // returns 0 on s390x RHEL 7.x ++ ++ // returns 0 on some configurations + if (size == 0) { + FILE *p = fopen( + "/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r"); + if (p) { +- fscanf(p, "%ld", &size); ++ if (fscanf(p, "%ld", &size) != 1) size = 0; + fclose(p); + } + } +-#endif +- return static_cast(size); ++ ++ if (size > 0) return static_cast(size); ++ return 64; + } + + #else diff --git a/mysql-arm32-timer.patch b/mysql-arm32-timer.patch index d9c616c..bafa0bb 100644 --- a/mysql-arm32-timer.patch +++ b/mysql-arm32-timer.patch @@ -1,10 +1,10 @@ diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql -index eff14a67..413dfc27 100644 +index 78b09285..b7153445 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql -@@ -363,6 +363,11 @@ INSERT INTO global_suppressions VALUES - */ - ("Manifest file '.*' is not read-only. For better security, please make sure that the file is read-only."), +@@ -376,6 +376,11 @@ INSERT INTO global_suppressions VALUES + + ("'mysql_native_password' is deprecated and will be removed in a future release."), + /* + ARM32 don't support timers and get this warning in every test. diff --git a/mysql-binlog.patch b/mysql-binlog.patch new file mode 100644 index 0000000..c94e866 --- /dev/null +++ b/mysql-binlog.patch @@ -0,0 +1,320 @@ +diff --git a/mysql-test/r/insert.result b/mysql-test/r/insert.result +index 9471e7dd515..aa369d37635 100644 +--- a/mysql-test/r/insert.result ++++ b/mysql-test/r/insert.result +@@ -1,7 +1,3 @@ +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; + create table t1 (a int not null); + insert into t1 values (1); +@@ -981,8 +977,6 @@ DROP VIEW view_target2; + DROP VIEW view_target3; + DROP USER user20989@localhost; + DROP DATABASE meow; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + # + # Bug#28836669: Only first set of duplicate columns are reported for INSERT + # +diff --git a/mysql-test/r/plugin.result b/mysql-test/r/plugin.result +index 0272e9fc7d9..e000f3d0328 100644 +--- a/mysql-test/r/plugin.result ++++ b/mysql-test/r/plugin.result +@@ -1,7 +1,3 @@ +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + CREATE TABLE t1(a int) ENGINE=EXAMPLE; + ERROR 42000: Unknown storage engine 'EXAMPLE' + INSTALL PLUGIN example SONAME 'ha_example.so'; +@@ -244,8 +240,6 @@ UNINSTALL PLUGIN example; + DROP USER bug51770@localhost; + INSTALL PLUGIN example SONAME '../ha_example.so'; + ERROR HY000: No paths allowed for shared library +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + # + # Bug #28534414: NEGATIVE NUMBERS IN PLUGIN VARIABLES + # NOT DISPLAYED CORRECTLY +diff --git a/mysql-test/r/subquery_sj_all.result b/mysql-test/r/subquery_sj_all.result +index 7b9a082cd77..9fbdd4accc7 100644 +--- a/mysql-test/r/subquery_sj_all.result ++++ b/mysql-test/r/subquery_sj_all.result +@@ -1,7 +1,3 @@ +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch='semijoin=on,materialization=on,firstmatch=on,loosescan=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=off'; + set @old_opt_switch=@@optimizer_switch; + set optimizer_switch='subquery_materialization_cost_based=off'; +@@ -13536,5 +13532,3 @@ f1 f2 + 14:51:13 S + DROP TABLE t1, t2; + set optimizer_switch=default; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +diff --git a/mysql-test/r/subquery_sj_all_bka.result b/mysql-test/r/subquery_sj_all_bka.result +index 2334635eec2..594ef685c0a 100644 +--- a/mysql-test/r/subquery_sj_all_bka.result ++++ b/mysql-test/r/subquery_sj_all_bka.result +@@ -1,8 +1,4 @@ + set optimizer_switch='batched_key_access=on,mrr_cost_based=off'; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch='semijoin=on,materialization=on,firstmatch=on,loosescan=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=off'; + set @old_opt_switch=@@optimizer_switch; + set optimizer_switch='subquery_materialization_cost_based=off'; +@@ -13539,6 +13535,4 @@ f1 f2 + 14:51:13 S + DROP TABLE t1, t2; + set optimizer_switch=default; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch=default; +diff --git a/mysql-test/r/subquery_sj_all_bka_nobnl.result b/mysql-test/r/subquery_sj_all_bka_nobnl.result +index f5c5dd7cf8d..80045176da0 100644 +--- a/mysql-test/r/subquery_sj_all_bka_nobnl.result ++++ b/mysql-test/r/subquery_sj_all_bka_nobnl.result +@@ -1,8 +1,4 @@ + set optimizer_switch='batched_key_access=on,block_nested_loop=off,mrr_cost_based=off'; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch='semijoin=on,materialization=on,firstmatch=on,loosescan=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=off'; + set @old_opt_switch=@@optimizer_switch; + set optimizer_switch='subquery_materialization_cost_based=off'; +@@ -13529,6 +13525,4 @@ f1 f2 + 14:51:13 S + DROP TABLE t1, t2; + set optimizer_switch=default; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch=default; +diff --git a/mysql-test/r/subquery_sj_mat.result b/mysql-test/r/subquery_sj_mat.result +index ae690001f15..b6bd0ce22b2 100644 +--- a/mysql-test/r/subquery_sj_mat.result ++++ b/mysql-test/r/subquery_sj_mat.result +@@ -1,7 +1,3 @@ +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch='semijoin=on,materialization=on'; + set @old_opt_switch=@@optimizer_switch; + set optimizer_switch='subquery_materialization_cost_based=off'; +@@ -13844,5 +13840,3 @@ f1 f2 + 14:51:13 S + DROP TABLE t1, t2; + set optimizer_switch=default; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +diff --git a/mysql-test/r/subquery_sj_mat_bka.result b/mysql-test/r/subquery_sj_mat_bka.result +index 4b13e24edbd..a088f33597e 100644 +--- a/mysql-test/r/subquery_sj_mat_bka.result ++++ b/mysql-test/r/subquery_sj_mat_bka.result +@@ -1,8 +1,4 @@ + set optimizer_switch='batched_key_access=on,mrr_cost_based=off'; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch='semijoin=on,materialization=on'; + set @old_opt_switch=@@optimizer_switch; + set optimizer_switch='subquery_materialization_cost_based=off'; +@@ -13845,6 +13841,4 @@ f1 f2 + 14:51:13 S + DROP TABLE t1, t2; + set optimizer_switch=default; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch=default; +diff --git a/mysql-test/r/subquery_sj_mat_bka_nobnl.result b/mysql-test/r/subquery_sj_mat_bka_nobnl.result +index cee1779f4aa..7378907ce8a 100644 +--- a/mysql-test/r/subquery_sj_mat_bka_nobnl.result ++++ b/mysql-test/r/subquery_sj_mat_bka_nobnl.result +@@ -1,8 +1,4 @@ + set optimizer_switch='batched_key_access=on,block_nested_loop=off,mrr_cost_based=off'; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch='semijoin=on,materialization=on'; + set @old_opt_switch=@@optimizer_switch; + set optimizer_switch='subquery_materialization_cost_based=off'; +@@ -13836,6 +13832,4 @@ f1 f2 + 14:51:13 S + DROP TABLE t1, t2; + set optimizer_switch=default; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + set optimizer_switch=default; +diff --git a/mysql-test/suite/innodb/r/select_count_perf.result b/mysql-test/suite/innodb/r/select_count_perf.result +index 2b2adfab646..e7d163d57f3 100644 +--- a/mysql-test/suite/innodb/r/select_count_perf.result ++++ b/mysql-test/suite/innodb/r/select_count_perf.result +@@ -4,10 +4,6 @@ + # by count(*) always reflects the correct view of the table according + # to the transaction's selected isolation level. + # +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. + # + # Traverse various indexes to get the right counts. + # This especially tests count(*) which is pushed down to InnoDB in WL#6742. +@@ -1895,5 +1891,3 @@ id select_type table partitions type possible_keys key key_len ref rows filtered + Warnings: + Note 1003 /* select#1 */ select count(0) AS `COUNT(*)` from `test`.`t1` FORCE INDEX (`c2_idx`) join `test`.`t2` + DROP TABLE t1, t2; +-Warnings: +-Warning 1287 '@@binlog_format' is deprecated and will be removed in a future release. +diff --git a/mysql-test/suite/innodb/t/select_count_perf.test b/mysql-test/suite/innodb/t/select_count_perf.test +index e5070f14d11..6a3bfeff159 100644 +--- a/mysql-test/suite/innodb/t/select_count_perf.test ++++ b/mysql-test/suite/innodb/t/select_count_perf.test +@@ -14,8 +14,11 @@ + if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) + { + --disable_query_log ++ # Avoid warnings since binlog_format is deprecated ++ --disable_warnings + SET @saved_binlog_format= @@SESSION.binlog_format; + SET SESSION binlog_format= MIXED; ++ --enable_warnings + --enable_query_log + } + +@@ -401,6 +404,8 @@ DROP TABLE t1, t2; + if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) + { + --disable_query_log ++ --disable_warnings + SET SESSION binlog_format= @saved_binlog_format; ++ --enable_warnings + --enable_query_log + } +diff --git a/mysql-test/t/insert.test b/mysql-test/t/insert.test +index 1c1153ab5b4..8b95bfd8394 100644 +--- a/mysql-test/t/insert.test ++++ b/mysql-test/t/insert.test +@@ -10,8 +10,11 @@ + if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) + { + --disable_query_log ++ # Avoid warnings since binlog_format is deprecated ++ --disable_warnings + SET @saved_binlog_format= @@SESSION.binlog_format; + SET SESSION binlog_format= MIXED; ++ --enable_warnings + --enable_query_log + } + +@@ -877,7 +880,9 @@ DROP DATABASE meow; + if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) + { + --disable_query_log ++ --disable_warnings + SET SESSION binlog_format= @saved_binlog_format; ++ --enable_warnings + --enable_query_log + } + +diff --git a/mysql-test/t/plugin.test b/mysql-test/t/plugin.test +index 02513076118..584b54fe1e4 100644 +--- a/mysql-test/t/plugin.test ++++ b/mysql-test/t/plugin.test +@@ -4,8 +4,11 @@ + if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) + { + --disable_query_log ++ # Avoid warnings since binlog_format is deprecated ++ --disable_warnings + SET @saved_binlog_format= @@SESSION.binlog_format; + SET SESSION binlog_format= STATEMENT; ++ --enable_warnings + --enable_query_log + } + +@@ -282,7 +285,9 @@ eval INSTALL PLUGIN example SONAME '$path'; + if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) + { + --disable_query_log ++ --disable_warnings + SET SESSION binlog_format= @saved_binlog_format; ++ --enable_warnings + --enable_query_log + } + +diff --git a/mysql-test/t/subquery_sj_all.test b/mysql-test/t/subquery_sj_all.test +index 40a9aa72d51..eab49fc2ce7 100644 +--- a/mysql-test/t/subquery_sj_all.test ++++ b/mysql-test/t/subquery_sj_all.test +@@ -3,16 +3,6 @@ + # unsafe system function like rand(), LIMIT clause. + --source include/not_binlog_format_statement.inc + +-# The test fails with log_bin ON and binlog_format=ROW due to Bug#22841208. +-# Temporarily, overriding binlog_format to MIXED when log_bin is ON. +-if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) +-{ +- --disable_query_log +- SET @saved_binlog_format= @@SESSION.binlog_format; +- SET SESSION binlog_format= MIXED; +- --enable_query_log +-} +- + # + # Run subquery_sj.inc with all of the so-called 6.0 features. + # +@@ -22,10 +12,3 @@ set optimizer_switch='semijoin=on,materialization=on,firstmatch=on,loosescan=on, + --source include/subquery_sj.inc + + set optimizer_switch=default; +- +-if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) +-{ +- --disable_query_log +- SET SESSION binlog_format= @saved_binlog_format; +- --enable_query_log +-} +diff --git a/mysql-test/t/subquery_sj_mat.test b/mysql-test/t/subquery_sj_mat.test +index 92d97349840..ff212e3aaab 100644 +--- a/mysql-test/t/subquery_sj_mat.test ++++ b/mysql-test/t/subquery_sj_mat.test +@@ -3,16 +3,6 @@ + # unsafe system function like rand(), LIMIT clause. + --source include/not_binlog_format_statement.inc + +-# The test fails with log_bin ON and binlog_format=ROW due to Bug#22841208. +-# Temporarily, overriding binlog_format to MIXED when log_bin is ON. +-if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) +-{ +- --disable_query_log +- SET @saved_binlog_format= @@SESSION.binlog_format; +- SET SESSION binlog_format= MIXED; +- --enable_query_log +-} +- + # + # Run subquery_sj.inc with semijoin and turn off all strategies, but Materialization + # +@@ -45,10 +35,3 @@ if (`select locate('mrr', @@optimizer_switch) > 0`) + --source include/subquery_sj.inc + + set optimizer_switch=default; +- +-if (`SELECT @@global.log_bin AND @@global.binlog_format = 'ROW'`) +-{ +- --disable_query_log +- SET SESSION binlog_format= @saved_binlog_format; +- --enable_query_log +-} diff --git a/mysql-clone.patch b/mysql-clone.patch new file mode 100644 index 0000000..126af43 --- /dev/null +++ b/mysql-clone.patch @@ -0,0 +1,35 @@ +diff --git a/storage/innobase/clone/clone0apply.cc b/storage/innobase/clone/clone0apply.cc +index e41a2e37dbf..742b09d0207 100644 +--- a/storage/innobase/clone/clone0apply.cc ++++ b/storage/innobase/clone/clone0apply.cc +@@ -1734,10 +1734,10 @@ int Clone_Snapshot::extend_and_flush_files(bool flush_redo) { + std::string file_name; + file_ctx->get_file_name(file_name); + +- auto file = +- os_file_create(innodb_clone_file_key, file_name.c_str(), +- OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT, OS_FILE_NORMAL, +- OS_CLONE_DATA_FILE, false, &success); ++ auto file = os_file_create( ++ innodb_clone_file_key, file_name.c_str(), ++ OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT, OS_FILE_NORMAL, ++ flush_redo ? OS_CLONE_LOG_FILE : OS_CLONE_DATA_FILE, false, &success); + + if (!success) { + /* purecov: begin inspected */ +diff --git a/storage/innobase/include/clone0snapshot.h b/storage/innobase/include/clone0snapshot.h +index 884ac08a884..03a9aa3431c 100644 +--- a/storage/innobase/include/clone0snapshot.h ++++ b/storage/innobase/include/clone0snapshot.h +@@ -787,9 +787,9 @@ class Clone_Snapshot { + int init_apply_state(Clone_Desc_State *state_desc); + + /** Extend and flush files after copying data +- @param[in] is_redo if true flush redo, otherwise data ++ @param[in] flush_redo if true flush redo, otherwise data + @return error code */ +- int extend_and_flush_files(bool is_redo); ++ int extend_and_flush_files(bool flush_redo); + + /** Create file descriptor and add to current file list + @param[in] data_dir destination data directory diff --git a/mysql-mtr.patch b/mysql-mtr.patch index 6f193b9..3bb6559 100644 --- a/mysql-mtr.patch +++ b/mysql-mtr.patch @@ -80,9 +80,11 @@ I'm not sure whether the output is synchronous, but even if it wasn'tit still lo ---- mysql-8.0.24/mysql-test/mysql-test-run.pl 2021-05-10 04:29:44.391897891 +0200 -+++ mysql-8.0.24/mysql-test/mysql-test-run.pl_patched 2021-05-10 04:38:51.031702753 +0200 -@@ -3374,17 +3374,6 @@ sub setup_vardir() { +diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl +index 26e6c92c..9d85c6d6 100755 +--- a/mysql-test/mysql-test-run.pl ++++ b/mysql-test/mysql-test-run.pl +@@ -3533,17 +3533,6 @@ sub setup_vardir() { mkpath("$opt_vardir/tmp"); mkpath($opt_tmpdir) if ($opt_tmpdir ne "$opt_vardir/tmp"); @@ -99,4 +101,4 @@ I'm not sure whether the output is synchronous, but even if it wasn'tit still lo - # Copy all files from std_data into var/std_data # and make them world readable - copytree("$glob_mysql_test_dir/std_data", "$opt_vardir/std_data", "0022"); + copytree("$glob_mysql_test_dir/std_data", "$opt_vardir/std_data", "0022") diff --git a/mysql.spec b/mysql.spec index 7718c82..78d79f9 100644 --- a/mysql.spec +++ b/mysql.spec @@ -144,7 +144,7 @@ %endif Name: %{?scl_prefix}mysql -Version: 8.0.33 +Version: 8.0.34 Release: 1%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries URL: http://www.mysql.com @@ -193,6 +193,9 @@ Patch5: %{pkgnamepatch}-paths.patch Patch51: %{pkgnamepatch}-sharedir.patch Patch53: %{pkgnamepatch}-mtr.patch Patch54: %{pkgnamepatch}-arm32-timer.patch +Patch55: %{pkgnamepatch}-clone.patch +Patch56: %{pkgnamepatch}-binlog.patch +Patch57: %{pkgnamepatch}-alignment.patch # Patches specific for scl Patch90: %{pkgnamepatch}-scl-env-check.patch @@ -515,6 +518,9 @@ the MySQL sources. %patch51 -p1 %patch53 -p1 %patch54 -p1 +%patch55 -p1 +%patch54 -p1 +%patch57 -p1 %patch126 -p1 # Patch Boost @@ -892,7 +898,7 @@ export MTR_BUILD_THREAD=$(( $(date +%s) % 2200 )) set -ex cd %{buildroot}%{_datadir}/mysql-test - export common_testsuite_arguments=" %{?with_debug:--debug-server} --parallel=auto --force --retry=2 --suite-timeout=900 --testcase-timeout=30 --mysqld=--binlog-format=mixed --max-test-fail=5 --report-unstable-tests --clean-vardir --mysqld=--skip-innodb-use-native-aio " + export common_testsuite_arguments=" %{?with_debug:--debug-server} --parallel=auto --force --retry=2 --suite-timeout=900 --testcase-timeout=30 --skip-combinations --max-test-fail=5 --report-unstable-tests --clean-vardir --mysqld=--skip-innodb-use-native-aio " # If full testsuite has already been run on this version and we don't explicitly want the full testsuite to be run if [[ "%{last_tested_version}" == "%{version}" ]] && [[ %{force_run_testsuite} -eq 0 ]] @@ -1205,6 +1211,13 @@ fi %endif %changelog +* Wed Aug 09 2023 Lars Tangvald - 8.0.34-1 +- Update to MySQL 8.0.34 +- Add patch from upstream bug#110569 +- Add patch to fix binlog format issue +- Use --skip-combinations over --binlog-format=mixed +- Add alignment patch upstream bug#110752 + * Wed Apr 12 2023 Lars Tangvald - 8.0.33-1 - Update to MySQL 8.0.33 diff --git a/sources b/sources index 1e0b722..5877b46 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mysql-boost-8.0.33.tar.gz) = 47f76819004c7c545d1b0b6b6646d8816899976f92d35c5564b1255b144b597ff7d3e674c721a45bcbb13cc0da3f4474fb29221c0e21d2ff91a1892cd42c636c +SHA512 (mysql-boost-8.0.34.tar.gz) = e5e79ac6870c214cf62c8e2830106d60e09d2e6df30654b84bb5d26864b4eabe777468a223e6ee4c1e22b7f6ec086c73e85e3f4c1fa66912b0e59b606ab46cd6