summaryrefslogtreecommitdiff
path: root/mysql-test/suite/versioning/r/trx_id.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/versioning/r/trx_id.result')
-rw-r--r--mysql-test/suite/versioning/r/trx_id.result99
1 files changed, 99 insertions, 0 deletions
diff --git a/mysql-test/suite/versioning/r/trx_id.result b/mysql-test/suite/versioning/r/trx_id.result
index 1b59fc8b3fc..6c337863790 100644
--- a/mysql-test/suite/versioning/r/trx_id.result
+++ b/mysql-test/suite/versioning/r/trx_id.result
@@ -182,7 +182,78 @@ select x, row_start < row_end from t1 for system_time all;
x row_start < row_end
4 1
2 1
+#
+# MDEV-15951 system versioning by trx id doesn't work with partitioning
+# currently trx_id does not support partitioning by system_time
+#
+create or replace table t1(
+i int,
+row_start bigint unsigned generated always as row start,
+row_end bigint unsigned generated always as row end,
+period for system_time(row_start, row_end)
+) engine=InnoDB with system versioning partition by system_time (
+partition p0 history,
+partition pn current
+);
+ERROR HY000: `row_start` must be of type TIMESTAMP(6) for system-versioned table `t1`
+create or replace table t1(
+i int,
+row_start bigint unsigned generated always as row start,
+row_end bigint unsigned generated always as row end,
+period for system_time(row_start, row_end)
+) engine=InnoDB with system versioning;
+alter table t1 partition by system_time (
+partition p0 history,
+partition pn current
+);
+ERROR HY000: `row_start` must be of type TIMESTAMP(6) for system-versioned table `t1`
+drop table t1;
+create or replace table t (
+a int primary key,
+row_start bigint unsigned as row start invisible,
+row_end bigint unsigned as row end invisible,
+period for system_time(row_start, row_end)
+) engine=innodb with system versioning
+partition by key() (
+partition p1,
+partition p2
+);
+ERROR HY000: Transaction-precise system-versioned tables do not support partitioning by ROW START or ROW END
+create or replace table t (
+a int primary key,
+row_start bigint unsigned as row start invisible,
+row_end bigint unsigned as row end invisible,
+period for system_time(row_start, row_end)
+) engine=innodb with system versioning
+partition by key(a, row_start) (
+partition p1,
+partition p2
+);
+ERROR HY000: Transaction-precise system-versioned tables do not support partitioning by ROW START or ROW END
+create or replace table t (
+a int primary key,
+row_start bigint unsigned as row start invisible,
+row_end bigint unsigned as row end invisible,
+period for system_time(row_start, row_end)
+) engine=innodb with system versioning
+partition by hash(a + row_end * 2) (
+partition p1,
+partition p2
+);
+ERROR HY000: Transaction-precise system-versioned tables do not support partitioning by ROW START or ROW END
+create or replace table t (
+a int primary key,
+row_start bigint unsigned as row start invisible,
+row_end bigint unsigned as row end invisible,
+period for system_time(row_start, row_end)
+) engine=innodb with system versioning
+partition by range columns (a, row_start) (
+partition p1 values less than (100, 100)
+);
+ERROR HY000: Transaction-precise system-versioned tables do not support partitioning by ROW START or ROW END
+#
# MDEV-16010 Too many rows with AS OF point_in_the_past_or_NULL
+#
create or replace table t1 (
x int,
row_start bigint unsigned as row start invisible,
@@ -512,3 +583,31 @@ drop table t;
uninstall plugin test_versioning;
select trt_begin_ts(0);
ERROR 42000: FUNCTION test.trt_begin_ts does not exist
+#
+# MDEV-21650 Non-empty statement transaction on global rollback after TRT update error
+#
+create table t1 (s date, e date, period for app(s,e)) engine=innodb;
+alter table t1
+add row_start bigint unsigned as row start,
+add row_end bigint unsigned as row end,
+add period for system_time(row_start,row_end),
+with system versioning,
+add period if not exists for app(x,y);
+Warnings:
+Note 1060 Duplicate column name 'app'
+set transaction isolation level serializable;
+start transaction;
+insert into t1 (s,e) values ('2021-07-04','2024-08-18');
+connect con1,localhost,root,,test;
+start transaction;
+insert into t1 (s,e) values ('2018-06-01','2021-09-15');
+connection default;
+select * from t1 for system_time as of now();
+ERROR HY000: TRX_ID ... not found in `mysql.transaction_registry`
+connection con1;
+set innodb_lock_wait_timeout= 1, lock_wait_timeout= 1;
+alter table xx;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+disconnect con1;
+connection default;
+drop table t1;