server icon indicating copy to clipboard operation
server copied to clipboard

MDEV-30456 ALTER TABLE algorithm clause not replicated

Open sjaakola opened this issue 2 years ago • 0 comments
trafficstars

  • [x] The Jira issue number for this PR is: MDEV-30456

Description

If user has specified the desired alter algorithm by using session variable alter_algorithm, and not specifying the algorithm in the ALTER SQL statement, then the ALTER will be processed in sending node according the algorithm chosen by the alter_algorithm variable. But in receiving nodes, appliers cannot see this session variable, and will use the default algorithm when executing the ALTER.

The fix in this commit, will check if user has set alter_algorithm variable and has not explicitly specified the algorithm clause in the ALTER statement, and in such case will rewrite the original ALTER statement appended by the algorithm clause. This rewritten ALTER statement will be used in replication.

How can this PR be tested?

The commit has also new mtr test: galera.galera_alter_table_algorithm which verifies that ALTER query rewrite happens when needed

Basing the PR against the correct MariaDB version

  • [ ] This is a new feature and the PR is based against the latest MariaDB development branch
  • [x ] This is a bug fix and the PR is based against the earliest maintained branch in which the bug can be reproduced

Backward compatibility

PR quality check

sjaakola avatar May 10 '23 08:05 sjaakola