diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/main/long_unique_innodb.test | |
parent | Initial commit. (diff) | |
download | mariadb-upstream.tar.xz mariadb-upstream.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/main/long_unique_innodb.test')
-rw-r--r-- | mysql-test/main/long_unique_innodb.test | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/mysql-test/main/long_unique_innodb.test b/mysql-test/main/long_unique_innodb.test new file mode 100644 index 00000000..dd2d9f94 --- /dev/null +++ b/mysql-test/main/long_unique_innodb.test @@ -0,0 +1,145 @@ +--source include/have_innodb.inc + +# +# MDEV-371 Unique indexes for blobs +# + +create table t1(a blob unique) engine= InnoDB; +insert into t1 values('RUC'); +--error ER_DUP_ENTRY +insert into t1 values ('RUC'); +drop table t1; + +create table t1 (a blob unique , c int unique) engine=innodb; +show create table t1; +drop table t1; + +--echo #test for concurrent insert of long unique in innodb +create table t1(a blob unique) engine= InnoDB; +show create table t1; +connect ('con1', localhost, root,,); +connect ('con2', localhost, root,,); + +--connection con1 +set innodb_lock_wait_timeout= 2; +set transaction isolation level READ UNCOMMITTED; +start transaction; +insert into t1 values('RUC'); +--connection con2 +set innodb_lock_wait_timeout= 2; +set transaction isolation level READ UNCOMMITTED; +start transaction; +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 values ('RUC'); + +--connection con1 +commit; +set transaction isolation level READ COMMITTED; +start transaction; +insert into t1 values('RC'); +--connection con2 +commit; +set transaction isolation level READ COMMITTED; +start transaction; +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 values ('RC'); +commit; + +--connection con1 +commit; +set transaction isolation level REPEATABLE READ; +start transaction; +insert into t1 values('RR'); +--connection con2 +commit; +set transaction isolation level REPEATABLE READ; +start transaction; +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 values ('RR'); + +--connection con1 +commit; +set transaction isolation level SERIALIZABLE; +start transaction; +insert into t1 values('S'); +--connection con2 +commit; +set transaction isolation level SERIALIZABLE; +start transaction; +--error ER_LOCK_WAIT_TIMEOUT +insert into t1 values ('S'); +commit; + +--connection con1 +commit; + +select * from t1; +drop table t1; + +create table t1(a blob unique) engine=Innodb; + +--connection con1 +set transaction isolation level READ UNCOMMITTED; +start transaction; +insert into t1 values('RUC'); +--connection con2 +set transaction isolation level READ UNCOMMITTED; +start transaction; +--send insert into t1 values ('RUC'); +--connection con1 +rollback; +--connection con2 +--reap +commit; + +--connection con1 +set transaction isolation level READ COMMITTED; +start transaction; +insert into t1 values('RC'); +--connection con2 +set transaction isolation level READ COMMITTED; +start transaction; +--send insert into t1 values ('RC'); +--connection con1 +rollback; +--connection con2 +--reap +commit; + +--connection con1 +set transaction isolation level REPEATABLE READ; +start transaction; +insert into t1 values('RR'); +--connection con2 +set transaction isolation level REPEATABLE READ; +start transaction; +--send insert into t1 values ('RR'); +--connection con1 +rollback; +--connection con2 +--reap +commit; + +--connection con1 +set transaction isolation level SERIALIZABLE; +start transaction; +insert into t1 values('S'); +--connection con2 +set transaction isolation level SERIALIZABLE; +start transaction; +--send insert into t1 values ('S'); +--connection con1 +rollback; +--connection con2 +--reap +commit; + +connection default; +drop table t1; +disconnect con1; +disconnect con2; + +--echo # MDEV-20131 Assertion `!pk->has_virtual()' failed + +--error ER_TOO_LONG_KEY +create table t1 (a text, primary key(a(1871))) engine=innodb; |