mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
106 lines
3.7 KiB
Text
106 lines
3.7 KiB
Text
create table t1 (a int);
|
|
show create table t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
create temporary table tt1 (a int) with system versioning;
|
|
ERROR HY000: System-versioned tables do not support CREATE TEMPORARY TABLE
|
|
set @old_dbug=@@global.debug_dbug;
|
|
set global debug_dbug='+d,sysvers_force';
|
|
create table t2 (a int);
|
|
show create table t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
|
create temporary table tt2 (a int) with system versioning;
|
|
show create table tt2;
|
|
Table Create Table
|
|
tt2 CREATE TEMPORARY TABLE `tt2` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
|
connect con1, localhost, root;
|
|
create table t3 (a int);
|
|
show create table t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
|
create temporary table tt3 (a int) with system versioning;
|
|
show create table tt3;
|
|
Table Create Table
|
|
tt3 CREATE TEMPORARY TABLE `tt3` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
|
disconnect con1;
|
|
connection default;
|
|
set debug_dbug='+d,sysvers_show';
|
|
show create table t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
|
create table t4 (a int);
|
|
show create table t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`a` int(11) DEFAULT NULL,
|
|
`row_start` timestamp(6) GENERATED ALWAYS AS ROW START,
|
|
`row_end` timestamp(6) GENERATED ALWAYS AS ROW END,
|
|
PERIOD FOR SYSTEM_TIME (`row_start`, `row_end`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
|
drop table t1, t2, t3, t4;
|
|
set debug_dbug= @old_dbug;
|
|
set global debug_dbug= @old_dbug;
|
|
#
|
|
# MDEV-19525 remove ER_VERS_FIELD_WRONG_TYPE from init_from_binary_frm_image()
|
|
#
|
|
create table t1 (x int) with system versioning;
|
|
set debug_dbug='+d,error_vers_wrong_type';
|
|
show create table t1;
|
|
ERROR HY000: Incorrect information in file: './test/t1.frm'
|
|
show warnings;
|
|
Level Code Message
|
|
Warning 4110 `row_start` must be of type TIMESTAMP(6) for system-versioned table `t1`
|
|
Error 1033 Incorrect information in file: './test/t1.frm'
|
|
drop table t1;
|
|
set debug_dbug= @old_dbug;
|
|
#
|
|
# MDEV-17554 Auto-create new partition for system versioned tables
|
|
# with history partitioned by INTERVAL/LIMIT
|
|
#
|
|
call mtr.add_suppression("need more HISTORY partitions");
|
|
create or replace table t1 (x int) with system versioning
|
|
partition by system_time limit 1 auto partitions 2;
|
|
insert into t1 values (1);
|
|
update t1 set x= x + 1;
|
|
connect con2, localhost, root;
|
|
connect con1, localhost, root;
|
|
# Both threads create partition simultaneously
|
|
connection con1;
|
|
set debug_sync= 'add_history_partition signal s1 wait_for s2';
|
|
update t1 set x= x + 10;
|
|
connection con2;
|
|
set debug_sync= 'now wait_for s1';
|
|
flush tables t1;
|
|
set debug_sync= 'add_history_partition signal s2';
|
|
update t1 set x= x + 20;
|
|
connection con1;
|
|
connection default;
|
|
update t1 set x= x + 2;
|
|
# Second thread skips to reopen 3 times until first thread creates partition
|
|
connection con1;
|
|
set debug_sync= 'add_history_partition SIGNAL s1 WAIT_FOR s2';
|
|
update t1 set x= x + 30;
|
|
connection con2;
|
|
set debug_sync= 'now WAIT_FOR s1';
|
|
set debug_sync= 'reopen_history_partition SIGNAL s2 EXECUTE 3';
|
|
update t1 set x= x + 40;
|
|
connection con1;
|
|
connection default;
|
|
disconnect con1;
|
|
disconnect con2;
|
|
set @@timestamp= default;
|
|
drop tables t1;
|
|
set debug_sync= 'reset';
|