1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-14798 Add, drop system versioning semantic and syntax

This commit is contained in:
Eugene Kosov
2018-01-10 16:44:29 +03:00
committed by Sergei Golubchik
parent eedab70c1c
commit f96b1a4e39
5 changed files with 50 additions and 65 deletions

View File

@ -125,7 +125,10 @@ with system versioning;
select * from t for system_time all;
a
alter table t drop column row_start;
ERROR HY000: Wrong parameters for `t`: missing 'DROP COLUMN row_end'
alter table t drop column row_end;
ERROR HY000: Wrong parameters for `t`: missing 'DROP COLUMN row_start'
alter table t drop column row_start, drop column row_end;
select * from t for system_time all;
a
alter table t drop column row_start;
@ -383,30 +386,6 @@ ERROR HY000: Can not change system versioning field `row_start`
insert into t values (1);
alter table t modify column row_start bigint unsigned;
ERROR HY000: Can not change system versioning field `row_start`
create or replace table t (
a int,
row_start timestamp(6) as row start invisible,
row_end timestamp(6) as row end invisible,
period for system_time(row_start, row_end)
) with system versioning;
select * from t;
a
alter table t drop system versioning;
ERROR HY000: System versioning field `row_start` exists
alter table t drop column row_start;
select * from t;
a
alter table t drop system versioning;
ERROR HY000: System versioning field `row_end` exists
alter table t drop column row_end;
select * from t;
a
alter table t drop system versioning;
show create table t;
Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
set system_versioning_alter_history= SURVIVE;
ERROR 42000: Variable 'system_versioning_alter_history' can't be set to the value of 'SURVIVE'
set system_versioning_alter_history= DROP;
@ -465,5 +444,9 @@ ERROR 42S21: Duplicate column name 'row_start'
set statement system_versioning_alter_history=keep for
alter table t1 add column row_start timestamp(6);
ERROR 42S21: Duplicate column name 'row_start'
# MDEV-14798 Add, drop system versioning semantic and syntax
create or replace table t (a int) with system versioning;
alter table t add period for system_time(sys_trx_start, sys_trx_end);
ERROR HY000: Table `t` is already system-versioned
drop database test;
create database test;

View File

@ -78,8 +78,11 @@ create or replace table t (
with system versioning;
select * from t for system_time all;
--error ER_MISSING
alter table t drop column row_start;
--error ER_MISSING
alter table t drop column row_end;
alter table t drop column row_start, drop column row_end;
select * from t for system_time all;
--error ER_CANT_DROP_FIELD_OR_KEY
@ -263,28 +266,6 @@ insert into t values (1);
--error ER_VERS_ALTER_SYSTEM_FIELD
alter table t modify column row_start bigint unsigned;
create or replace table t (
a int,
row_start timestamp(6) as row start invisible,
row_end timestamp(6) as row end invisible,
period for system_time(row_start, row_end)
) with system versioning;
select * from t;
--error ER_VERS_SYS_FIELD_EXISTS
alter table t drop system versioning;
alter table t drop column row_start;
select * from t;
--error ER_VERS_SYS_FIELD_EXISTS
alter table t drop system versioning;
alter table t drop column row_end;
select * from t;
alter table t drop system versioning;
show create table t;
## These experimental options are now disabled
--error ER_WRONG_VALUE_FOR_VAR
@ -404,5 +385,11 @@ alter table t1 add column row_start int;
set statement system_versioning_alter_history=keep for
alter table t1 add column row_start timestamp(6);
--echo # MDEV-14798 Add, drop system versioning semantic and syntax
create or replace table t (a int) with system versioning;
--error ER_VERS_ALREADY_VERSIONED
alter table t add period for system_time(sys_trx_start, sys_trx_end);
drop database test;
create database test;