MariaDB 10.4.31 release

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEF39AEP5WyjM2MAMF8WVvJMdM0dgFAmTaVsgACgkQ8WVvJMdM
 0dgYMw//WZH7t1W4bIxq38dP+07j5JPlh+VivkMozbM8BcD7b+VtX62YFqfE+GHs
 T0dRy2KZk3VwJvPR4FDtbnp30NADW1GI+rGLptZxEPpr57sUSWyQH7pcmUkmtwSs
 f2UJhA3yYdGiV7RMGJwhHRReMgVqsFRgjKGro1uFHyy2g+ffo3a05XFD6fsphGcO
 cbZtGJI5LpJ2q+fPIQq4QuicbcqRWnXcOkKUupz74YV7pvWNM52GbLGtSRbsaQ2d
 E/HS5Ip6klRY3zKxsLd7crEqyubyd3Q4S7yE1RZ2PzYGfZ+qfHEMH8sYnIt3D9uF
 X4f9XKTmgbxz8ElucRssNmayuGBlcX8W1WL2SNA9595Hf/79aYeOpmnE+fDkMdIJ
 RPYVYkUTN2KFmWbVcyMmXqe8Y7xZq5Mk2BlFYFAeZ5J4RcR0BE3bXLJN9XeeHgXH
 1f3VqaE+pgUf4DNHrr1kF+4e77g9whlAe5cv0cOlsSe2qOrnovSWvmVBjrX46CMe
 JmBl9RtHc5tNNlrPp9SZ0xjspsiWlBTDXh3khYgLz4wovB3uDR59CDdgOVNe2MfM
 vXoFpx3VFdL0Ht8NqUJVojKvbWY8kd4yC9mNjuhRQzuvlMyTJpZKJ3rBiRT9MvT8
 2JsVZ5MXygifiquH4xAE2d5UgR6V6t2CFw42xufnBTssBe1ZJm4=
 =cfUg
 -----END PGP SIGNATURE-----

Merge mariadb-10.4.31 into 10.4
This commit is contained in:
Marko Mäkelä 2023-08-15 11:04:12 +03:00
commit 6fdc684681
3 changed files with 28 additions and 6 deletions

View file

@ -75,3 +75,10 @@ ALTER TABLE t1 MODIFY msg VARCHAR(200) CHARSET utf8mb4, ALGORITHM=COPY;
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY (msg) REFERENCES t1(msg), aLGORITHM=INPLACE;
SET FOREIGN_KEY_CHECKS=1;
DROP TABLE t2, t1;
#
# MDEV-31869 Server aborts when table does drop column
#
CREATE TABLE t (a VARCHAR(40), b INT, C INT) ENGINE=InnoDB;
ALTER TABLE t MODIFY a VARCHAR(50), DROP b;
DROP TABLE t;
# End of 10.4 tests

View file

@ -104,3 +104,11 @@ ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY (msg) REFERENCES t1(msg), aLGORITHM=IN
SET FOREIGN_KEY_CHECKS=1;
DROP TABLE t2, t1;
--echo #
--echo # MDEV-31869 Server aborts when table does drop column
--echo #
CREATE TABLE t (a VARCHAR(40), b INT, C INT) ENGINE=InnoDB;
ALTER TABLE t MODIFY a VARCHAR(50), DROP b;
DROP TABLE t;
--echo # End of 10.4 tests

View file

@ -8330,14 +8330,21 @@ err_exit:
index columns are modified */
if (ha_alter_info->handler_flags
& ALTER_COLUMN_TYPE_CHANGE_BY_ENGINE) {
List_iterator<Create_field> it(
ha_alter_info->alter_info->create_list);
for (uint i = 0; i < table->s->fields; i++) {
Field* field = table->field[i];
Create_field *f= it++;
if (!f->field || field->is_equal(*f))
continue;
for (uint i= 0; i < table->s->fields; i++) {
Field* field = table->field[i];
for (const Create_field& new_field :
ha_alter_info->alter_info->create_list) {
if (new_field.field == field) {
if (!field->is_equal(new_field)) {
goto field_changed;
}
break;
}
}
continue;
field_changed:
const char* col_name= field->field_name.str;
dict_col_t *col= dict_table_get_nth_col(
m_prebuilt->table, i);