mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-22660 SIGSEGV on adding system versioning and modifying system column
Second alter subcommand correctly removed VERS_ROW_END flag. We throw ER_VERS_PERIOD_COLUMNS in such case.
This commit is contained in:
@ -759,3 +759,22 @@ delete from t1;
|
||||
set system_versioning_alter_history= keep;
|
||||
alter ignore table t1 drop pk;
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-22660 SIGSEGV on adding system versioning and modifying system column
|
||||
#
|
||||
create or replace table t1 (a int);
|
||||
alter table t1
|
||||
add row_start timestamp(6) as row start,
|
||||
add row_end timestamp(6) as row end,
|
||||
add period for system_time(row_start, row_end),
|
||||
with system versioning,
|
||||
modify row_end varchar(8);
|
||||
ERROR HY000: PERIOD FOR SYSTEM_TIME must use columns `row_start` and `row_end`
|
||||
alter table t1
|
||||
add row_start timestamp(6) as row start,
|
||||
add row_end timestamp(6) as row end,
|
||||
add period for system_time(row_start, row_end),
|
||||
with system versioning,
|
||||
modify row_start varchar(8);
|
||||
ERROR HY000: PERIOD FOR SYSTEM_TIME must use columns `row_start` and `row_end`
|
||||
drop table t1;
|
||||
|
@ -652,3 +652,25 @@ set system_versioning_alter_history= keep;
|
||||
alter ignore table t1 drop pk;
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-22660 SIGSEGV on adding system versioning and modifying system column
|
||||
--echo #
|
||||
create or replace table t1 (a int);
|
||||
--error ER_VERS_PERIOD_COLUMNS
|
||||
alter table t1
|
||||
add row_start timestamp(6) as row start,
|
||||
add row_end timestamp(6) as row end,
|
||||
add period for system_time(row_start, row_end),
|
||||
with system versioning,
|
||||
modify row_end varchar(8);
|
||||
--error ER_VERS_PERIOD_COLUMNS
|
||||
alter table t1
|
||||
add row_start timestamp(6) as row start,
|
||||
add row_end timestamp(6) as row end,
|
||||
add period for system_time(row_start, row_end),
|
||||
with system versioning,
|
||||
modify row_start varchar(8);
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
Reference in New Issue
Block a user