mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-30112 ASAN errors in Item_ident::print / generate_partition_syntax
Like in MDEV-16110 we must release items allocated on thd->mem_root by reopening the table. MDEV-16290 relocated MDEV-16110 fix in 10.5 so it works for MDEV-28576 as well. 10.3 without MDEV-16290 now duplicates this fix.
This commit is contained in:
@ -211,4 +211,17 @@ Table Op Msg_type Msg_text
|
||||
test.t check status OK
|
||||
delete from t order by b limit 1;
|
||||
drop table t;
|
||||
#
|
||||
# MDEV-30112 ASAN errors in Item_ident::print / generate_partition_syntax
|
||||
#
|
||||
create table t (a int) partition by hash(a);
|
||||
alter table t change a b int, drop a;
|
||||
ERROR 42S22: Unknown column 'a' in 't'
|
||||
show create table t;
|
||||
Table Create Table
|
||||
t CREATE TABLE `t` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
PARTITION BY HASH (`a`)
|
||||
drop table t;
|
||||
# End of 10.3 tests
|
||||
|
@ -196,4 +196,14 @@ delete from t order by b limit 1;
|
||||
# cleanup
|
||||
drop table t;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30112 ASAN errors in Item_ident::print / generate_partition_syntax
|
||||
--echo #
|
||||
create table t (a int) partition by hash(a);
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
alter table t change a b int, drop a;
|
||||
show create table t;
|
||||
# Cleanup
|
||||
drop table t;
|
||||
|
||||
--echo # End of 10.3 tests
|
||||
|
@ -8328,6 +8328,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
|
||||
} /* if (def->change.str) */
|
||||
} /* while (def) */
|
||||
} /* if (part_field_list || subpart_field_list) */
|
||||
// Force reopen because new column name is on thd->mem_root
|
||||
table->mark_table_for_reopen();
|
||||
} /* if (part_info) */
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user