Commit cc86360f authored by Aleksey Midenkov's avatar Aleksey Midenkov

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.
parent b527bfe8
...@@ -211,4 +211,17 @@ Table Op Msg_type Msg_text ...@@ -211,4 +211,17 @@ Table Op Msg_type Msg_text
test.t check status OK test.t check status OK
delete from t order by b limit 1; delete from t order by b limit 1;
drop table t; 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 # End of 10.3 tests
...@@ -196,4 +196,14 @@ delete from t order by b limit 1; ...@@ -196,4 +196,14 @@ delete from t order by b limit 1;
# cleanup # cleanup
drop table t; 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 --echo # End of 10.3 tests
...@@ -8328,6 +8328,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, ...@@ -8328,6 +8328,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
} /* if (def->change.str) */ } /* if (def->change.str) */
} /* while (def) */ } /* while (def) */
} /* if (part_field_list || subpart_field_list) */ } /* 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) */ } /* if (part_info) */
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment