Skip to content

Commit 06a37d3

Browse files
midenokdr-m
authored andcommitted
MDEV-18122 Assertion 'table->versioned() == m_prebuilt->table->versioned()' failed in ha_innobase::open
Closes #1134
1 parent e77156d commit 06a37d3

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

mysql-test/suite/versioning/r/online.result

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,5 +143,14 @@ create or replace table t1 (pk integer primary key, a int, b int, v int as (a))
143143
with system versioning;
144144
alter table t1 force;
145145
alter table t1 drop column b;
146+
#
147+
# MDEV-18122 Assertion `table->versioned() == m_prebuilt->table->versioned()' failed in ha_innobase::open
148+
#
149+
create or replace table t1 (
150+
x int,
151+
v int as (x) virtual,
152+
y int
153+
) with system versioning;
154+
alter table t1 drop system versioning;
146155
drop database test;
147156
create database test;

mysql-test/suite/versioning/t/online.test

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,15 @@ with system versioning;
182182
alter table t1 force;
183183
alter table t1 drop column b;
184184

185+
--echo #
186+
--echo # MDEV-18122 Assertion `table->versioned() == m_prebuilt->table->versioned()' failed in ha_innobase::open
187+
--echo #
188+
create or replace table t1 (
189+
x int,
190+
v int as (x) virtual,
191+
y int
192+
) with system versioning;
193+
alter table t1 drop system versioning;
185194

186195
drop database test;
187196
create database test;

storage/innobase/handler/handler0alter.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4234,7 +4234,8 @@ innobase_build_col_map(
42344234
}
42354235

42364236
col_map[old_i - num_old_v] = i;
4237-
if (old_table->versioned()) {
4237+
if (old_table->versioned()
4238+
&& altered_table->versioned()) {
42384239
if (old_i == old_table->vers_start) {
42394240
new_table->vers_start = i + num_v;
42404241
} else if (old_i == old_table->vers_end) {

0 commit comments

Comments
 (0)