1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-06 19:08:06 +03:00
Files
mariadb/mysql-test/suite/sys_vars/r/innodb_log_checksums_basic.result
Marko Mäkelä 47cede646b MDEV-19543 Deprecate and ignore innodb_log_checksums
The parameter innodb_log_checksums that was introduced in MariaDB 10.2.2
via mysql/mysql-server@af0acedd88
does not make much sense. The original motivation of introducing this
parameter (initially called innodb_log_checksum_algorithm in
mysql/mysql-server@22ba38218e)
was that the InnoDB redo log used the slow and insecure innodb algorithm.
With hardware or SIMD accelerated CRC-32C, there should be no reason to
allow checksums to be disabled on the redo log.

The parameter innodb_encrypt_log already implies innodb_log_checksums=ON.

Let us deprecate the parameter innodb_log_checksums and always compute
redo log checksums, even if innodb_log_checksums=OFF is specified.

An upgrade from MariaDB 10.2.2 or later will only be possible after
using the default value innodb_log_checksums=ON. If the non-default
value innodb_log_checksums=OFF was in effect when the server was shut down,
a log block checksum mismatch will be reported and the upgraded server
will fail to start up.
2019-05-23 10:25:11 +03:00

51 lines
1.7 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 The parameter innodb_log_checksums is deprecated and has no effect.
SELECT @@global.innodb_log_checksums;
@@global.innodb_log_checksums
1
SET GLOBAL innodb_log_checksums = default;
Warnings:
Warning 138 The parameter innodb_log_checksums is deprecated and has no effect.
SET GLOBAL innodb_log_checksums = ON;
Warnings:
Warning 138 The parameter innodb_log_checksums is deprecated and has no effect.
SELECT @@global.innodb_log_checksums;
@@global.innodb_log_checksums
1
SET GLOBAL innodb_log_checksums = @orig;
Warnings:
Warning 138 The parameter innodb_log_checksums is deprecated and has no effect.
SELECT @@global.innodb_log_checksums;
@@global.innodb_log_checksums
1