mirror of
https://github.com/MariaDB/server.git
synced 2025-07-24 19:42:23 +03:00
Regretfully, the parameter innodb_log_checksums was introduced in MySQL 5.7.9 (the first GA release of that series) by mysql/mysql-server@af0acedd88 which partly replaced a parameter that had been introduced in 5.7.8 mysql/mysql-server@22ba38218e as innodb_log_checksum_algorithm. Given that the CRC-32C operations are accelerated on many processor implementations (AMD64 with SSE4.2; since MDEV-22669 also on IA-32 with SSE4.2, POWER 8 and later, ARMv8 with some extensions) and by lookup tables when only generic SISD instructions are available, there should be no valid reason to disable checksums. In MariaDB 10.5.2, as a preparation for MDEV-12353, MDEV-19543 deprecated and ignored the parameter innodb_log_checksums altogether. This should imply that after a clean shutdown with innodb_log_checksums=OFF one cannot upgrade to MariaDB Server 10.5 at all. Due to these problems, let us deprecate the parameter innodb_log_checksums and honor it only during server startup. The command SET GLOBAL innodb_log_checksums will always set the parameter to ON.
45 lines
1.4 KiB
Plaintext
45 lines
1.4 KiB
Plaintext
SET @orig = @@global.innodb_log_checksums;
|
|
SELECT @orig;
|
|
@orig
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 'crc32';
|
|
ERROR 42000: Variable 'innodb_log_checksums' can't be set to the value of 'crc32'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 2;
|
|
ERROR 42000: Variable 'innodb_log_checksums' can't be set to the value of '2'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 1e2;
|
|
ERROR 42000: Incorrect argument type to variable 'innodb_log_checksums'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 1.0;
|
|
ERROR 42000: Incorrect argument type to variable 'innodb_log_checksums'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET innodb_log_checksums = OFF;
|
|
ERROR HY000: Variable 'innodb_log_checksums' is a GLOBAL variable and should be set with SET GLOBAL
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = OFF;
|
|
Warnings:
|
|
Warning 138 innodb_log_checksums is deprecated and has no effect outside recovery
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = default;
|
|
SET GLOBAL innodb_log_checksums = ON;
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = @orig;
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|