mark some file to been opensource for ce-farm
This commit is contained in:
@ -0,0 +1,28 @@
|
||||
set SESSION ob_query_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 600 * 1000 * 1000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_big_uncommitted_trans_t;
|
||||
create table test_big_uncommitted_trans_t(i int primary key, c1 char(30), c256 char(255), dt datetime(6), d datetime(6));
|
||||
select * from test_big_uncommitted_trans_t where i = 999;
|
||||
i c1 c256 dt d
|
||||
commit;
|
||||
select * from test_big_uncommitted_trans_t where i = 1999;
|
||||
i c1 c256 dt d
|
||||
1999 update_1999 1999 2012-10-10 12:00:00.000000 2012-10-10 00:00:00.000000
|
||||
select count(*) from test_big_uncommitted_trans_t;
|
||||
count(*)
|
||||
6000
|
||||
select * from test_big_uncommitted_trans_t where i = 999;
|
||||
i c1 c256 dt d
|
||||
999 update_999 999 2012-10-10 12:00:00.000000 2012-10-10 00:00:00.000000
|
||||
begin;
|
||||
alter system set minor_compact_trigger = 1;
|
||||
commit;
|
||||
select * from test_big_uncommitted_trans_t where i = 999;
|
||||
i c1 c256 dt d
|
||||
drop table test_big_uncommitted_trans_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,86 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_commit_after_minor_merge_t;
|
||||
create table test_commit_after_minor_merge_t(c1 int primary key, c2 int);
|
||||
insert into test_commit_after_minor_merge_t values (0,0);
|
||||
begin;
|
||||
update test_commit_after_minor_merge_t set c2 = 10 where c1 = 0;
|
||||
insert into test_commit_after_minor_merge_t values (3,3);
|
||||
commit;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
0 10
|
||||
3 3
|
||||
1
|
||||
insert into test_commit_after_minor_merge_t values (4,4);
|
||||
begin;
|
||||
insert into test_commit_after_minor_merge_t values (1,1);
|
||||
insert into test_commit_after_minor_merge_t values (2,2);
|
||||
commit;
|
||||
2
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
0 10
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
alter system major freeze tenant = sys;
|
||||
alter system major freeze tenant = all_user;
|
||||
alter system major freeze tenant = all_meta;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
0 10
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
insert into test_commit_after_minor_merge_t values (5,5);
|
||||
insert into test_commit_after_minor_merge_t values (6,6);
|
||||
delete from test_commit_after_minor_merge_t where c1 <= 2;
|
||||
alter system major freeze tenant = sys;
|
||||
alter system major freeze tenant = all_user;
|
||||
alter system major freeze tenant = all_meta;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
begin;
|
||||
insert into test_commit_after_minor_merge_t values (7,7);
|
||||
update test_commit_after_minor_merge_t set c2 = 60 where c1 = 6;
|
||||
delete from test_commit_after_minor_merge_t where c1 = 5;
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
3 3
|
||||
4 4
|
||||
6 60
|
||||
7 7
|
||||
rollback;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
c1 c2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
drop table test_commit_after_minor_merge_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,132 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_delete_uncommitted_data;
|
||||
create table test_delete_uncommitted_data(num int, str varchar(50), tag int);
|
||||
begin;
|
||||
insert into test_delete_uncommitted_data value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
delete from test_delete_uncommitted_data where tag = 1;
|
||||
select * from test_delete_uncommitted_data;
|
||||
num str tag
|
||||
select * from test_delete_uncommitted_data;
|
||||
num str tag
|
||||
insert into test_delete_uncommitted_data value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(50, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(49, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(48, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(47, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(46, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(45, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(44, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(43, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(42, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(41, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(40, 'Hello OceanBase & Happy New Year', 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select * from test_delete_uncommitted_data;
|
||||
num str tag
|
||||
select * from test_delete_uncommitted_data;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 1
|
||||
99 Hello OceanBase & Happy New Year 1
|
||||
98 Hello OceanBase & Happy New Year 1
|
||||
97 Hello OceanBase & Happy New Year 1
|
||||
96 Hello OceanBase & Happy New Year 1
|
||||
95 Hello OceanBase & Happy New Year 1
|
||||
94 Hello OceanBase & Happy New Year 1
|
||||
93 Hello OceanBase & Happy New Year 1
|
||||
92 Hello OceanBase & Happy New Year 1
|
||||
91 Hello OceanBase & Happy New Year 1
|
||||
90 Hello OceanBase & Happy New Year 1
|
||||
89 Hello OceanBase & Happy New Year 1
|
||||
88 Hello OceanBase & Happy New Year 1
|
||||
87 Hello OceanBase & Happy New Year 1
|
||||
86 Hello OceanBase & Happy New Year 1
|
||||
85 Hello OceanBase & Happy New Year 1
|
||||
84 Hello OceanBase & Happy New Year 1
|
||||
83 Hello OceanBase & Happy New Year 1
|
||||
82 Hello OceanBase & Happy New Year 1
|
||||
81 Hello OceanBase & Happy New Year 1
|
||||
80 Hello OceanBase & Happy New Year 1
|
||||
50 Hello OceanBase & Happy New Year 1
|
||||
49 Hello OceanBase & Happy New Year 1
|
||||
48 Hello OceanBase & Happy New Year 1
|
||||
47 Hello OceanBase & Happy New Year 1
|
||||
46 Hello OceanBase & Happy New Year 1
|
||||
45 Hello OceanBase & Happy New Year 1
|
||||
44 Hello OceanBase & Happy New Year 1
|
||||
43 Hello OceanBase & Happy New Year 1
|
||||
42 Hello OceanBase & Happy New Year 1
|
||||
41 Hello OceanBase & Happy New Year 1
|
||||
40 Hello OceanBase & Happy New Year 1
|
||||
update test_delete_uncommitted_data set tag = num + tag where num % 2 = 1;
|
||||
delete from test_delete_uncommitted_data where tag != 1;
|
||||
commit;
|
||||
select * from test_delete_uncommitted_data;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 1
|
||||
98 Hello OceanBase & Happy New Year 1
|
||||
96 Hello OceanBase & Happy New Year 1
|
||||
94 Hello OceanBase & Happy New Year 1
|
||||
92 Hello OceanBase & Happy New Year 1
|
||||
90 Hello OceanBase & Happy New Year 1
|
||||
88 Hello OceanBase & Happy New Year 1
|
||||
86 Hello OceanBase & Happy New Year 1
|
||||
84 Hello OceanBase & Happy New Year 1
|
||||
82 Hello OceanBase & Happy New Year 1
|
||||
80 Hello OceanBase & Happy New Year 1
|
||||
50 Hello OceanBase & Happy New Year 1
|
||||
48 Hello OceanBase & Happy New Year 1
|
||||
46 Hello OceanBase & Happy New Year 1
|
||||
44 Hello OceanBase & Happy New Year 1
|
||||
42 Hello OceanBase & Happy New Year 1
|
||||
40 Hello OceanBase & Happy New Year 1
|
||||
select count(*) from test_delete_uncommitted_data;
|
||||
count(*)
|
||||
17
|
||||
drop table test_delete_uncommitted_data;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,53 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
drop table if exists test_uncommitted_trx_minor_merge;
|
||||
create table test_uncommitted_trx_minor_merge(c1 int primary key, c2 int);
|
||||
insert into test_uncommitted_trx_minor_merge values (1,1);
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
c1 c2
|
||||
1 1
|
||||
insert into test_uncommitted_trx_minor_merge values (2,2);
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge values (3,3);
|
||||
update test_uncommitted_trx_minor_merge set c2 = 10 where c1 = 1;
|
||||
commit;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
c1 c2
|
||||
1 10
|
||||
2 2
|
||||
3 3
|
||||
2
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge values (4,4);
|
||||
commit;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
c1 c2
|
||||
1 10
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge values (5,5);
|
||||
update test_uncommitted_trx_minor_merge set c2 = 100 where c1 = 2;
|
||||
alter system set undo_retention = 0;
|
||||
commit;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
c1 c2
|
||||
1 10
|
||||
2 100
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
c1 c2
|
||||
1 10
|
||||
2 100
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
alter system set undo_retention = 1800;
|
||||
drop table test_uncommitted_trx_minor_merge;
|
||||
@ -0,0 +1,21 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
drop table if exists test_get_uncommitted_row_with_fuse_row_t;
|
||||
create table test_get_uncommitted_row_with_fuse_row_t(a int primary key, b int, unique key u_idx(b));
|
||||
insert into test_get_uncommitted_row_with_fuse_row_t (a, b) values (1, 10), (2, 20), (3, 30);
|
||||
begin;
|
||||
select * from test_get_uncommitted_row_with_fuse_row_t where a = 2 for update;
|
||||
a b
|
||||
2 20
|
||||
update test_get_uncommitted_row_with_fuse_row_t set b = b + 1 where a = 2;
|
||||
update test_get_uncommitted_row_with_fuse_row_t set b = 30 where a = 2;
|
||||
ERROR 23000: Duplicate entry '30' for key 'u_idx'
|
||||
select * from test_get_uncommitted_row_with_fuse_row_t where a = 2;
|
||||
a b
|
||||
2 20
|
||||
commit;
|
||||
select * from test_get_uncommitted_row_with_fuse_row_t where a = 2;
|
||||
a b
|
||||
2 21
|
||||
drop table test_get_uncommitted_row_with_fuse_row_t;
|
||||
@ -0,0 +1,40 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 1 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 1 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 1 * 1000 * 1000;
|
||||
drop table if exists test_lock_row_in_minor_t;
|
||||
create table test_lock_row_in_minor_t(a int primary key, b int);
|
||||
insert into test_lock_row_in_minor_t value(1, 1);
|
||||
alter system set minor_compact_trigger = 10;
|
||||
begin;
|
||||
select * from test_lock_row_in_minor_t where a = 1 for update;
|
||||
a b
|
||||
1 1
|
||||
insert into test_lock_row_in_minor_t value(2, 2);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
update test_lock_row_in_minor_t set b = 10 where a = 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
select * from test_lock_row_in_minor_t;
|
||||
a b
|
||||
1 1
|
||||
update test_lock_row_in_minor_t set b = 10 where a = 1;
|
||||
select * from test_lock_row_in_minor_t;
|
||||
a b
|
||||
1 10
|
||||
2 2
|
||||
commit;
|
||||
update test_lock_row_in_minor_t set b = 100 where a = 1;
|
||||
select * from test_lock_row_in_minor_t;
|
||||
a b
|
||||
1 100
|
||||
2 2
|
||||
begin;
|
||||
update test_lock_row_in_minor_t set b = 200 where a = 1;
|
||||
select * from test_lock_row_in_minor_t;
|
||||
a b
|
||||
1 200
|
||||
2 2
|
||||
drop table test_lock_row_in_minor_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,32 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
drop table if exists test_lock_uncommitted_data_t;
|
||||
create table test_lock_uncommitted_data_t(a int primary key, b int);
|
||||
begin;
|
||||
insert into test_lock_uncommitted_data_t value(1, 1);
|
||||
insert into test_lock_uncommitted_data_t value(2, 2);
|
||||
insert into test_lock_uncommitted_data_t value(3, 3);
|
||||
insert into test_lock_uncommitted_data_t value(4, 4);
|
||||
insert into test_lock_uncommitted_data_t value(5, 5);
|
||||
insert into test_lock_uncommitted_data_t value(6, 6);
|
||||
update test_lock_uncommitted_data_t set b = 10 where a = 3;
|
||||
select * from test_lock_uncommitted_data_t;
|
||||
a b
|
||||
update test_lock_uncommitted_data_t set b = 10 where a = 3;
|
||||
select * from test_lock_uncommitted_data_t;
|
||||
a b
|
||||
1 1
|
||||
2 2
|
||||
3 10
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
commit;
|
||||
update test_lock_uncommitted_data_t set b = 100 where a = 3;
|
||||
begin;
|
||||
update test_lock_uncommitted_data_t set b = 200 where a = 3;
|
||||
drop table test_lock_uncommitted_data_t;
|
||||
@ -0,0 +1,23 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists same_sql_sequence;
|
||||
create table same_sql_sequence(num int primary key, str varchar(50), tag int);
|
||||
create index index_num_tag on same_sql_sequence(tag);
|
||||
begin;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
update same_sql_sequence set tag = 0, str = 'Hello OceanBase';
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select /*+ index(same_sql_sequence index_num_tag) */ *from same_sql_sequence where tag = 0;
|
||||
num str tag
|
||||
1000 Hello OceanBase 0
|
||||
1001 Hello OceanBase 0
|
||||
1002 Hello OceanBase 0
|
||||
commit;
|
||||
drop table same_sql_sequence;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,36 @@
|
||||
set SESSION ob_query_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 600 * 1000 * 1000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
begin;
|
||||
update test_mix_dml_table set v2 = 'QQQQQQQQQQQQQQQQQQQQQQQQQQ';
|
||||
select count(*) from test_mix_dml_table where v2 = 'QQQQQQQQQQQQQQQQQQQQQQQQQQ';
|
||||
count(*)
|
||||
2000
|
||||
select * from test_mix_dml_table;
|
||||
i1 v2 i3 i4 d4 i5
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select * from test_mix_dml_table;
|
||||
i1 v2 i3 i4 d4 i5
|
||||
select count(*) from test_mix_dml_table;
|
||||
count(*)
|
||||
1000
|
||||
select count(*) from test_mix_dml_table;
|
||||
count(*)
|
||||
1000
|
||||
select count(*) from test_mix_dml_table;
|
||||
count(*)
|
||||
1000
|
||||
select count(*) from test_mix_dml_table;
|
||||
count(*)
|
||||
1000
|
||||
select count(*) from test_mix_dml_table;
|
||||
count(*)
|
||||
1000
|
||||
commit;
|
||||
select count(*) from test_mix_dml_table where i4 = 25 * i1 * power(2, 3) and v2 != 'QQQQQQQQQQQQQQQQQQQQQQQQQQ';
|
||||
count(*)
|
||||
0
|
||||
@ -0,0 +1,30 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
drop table if exists test_multi_get_uncommitted_row_t;
|
||||
create table test_multi_get_uncommitted_row_t(a int primary key, b int, key ib(b));
|
||||
begin;
|
||||
insert into test_multi_get_uncommitted_row_t value(1, 1);
|
||||
insert into test_multi_get_uncommitted_row_t value(2, 2);
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
a b
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1, 2);
|
||||
a b
|
||||
1 1
|
||||
2 2
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
a b
|
||||
update test_multi_get_uncommitted_row_t set b = 10 where a = 1;
|
||||
commit;
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
a b
|
||||
1 10
|
||||
2 2
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
a b
|
||||
1 10
|
||||
2 2
|
||||
drop table test_multi_get_uncommitted_row_t;
|
||||
@ -0,0 +1,244 @@
|
||||
set SESSION ob_query_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 600 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 600 * 1000 * 1000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_multi_minor_merge_t;
|
||||
create table test_multi_minor_merge_t(num int, str varchar(50), tag int);
|
||||
begin;
|
||||
insert into test_multi_minor_merge_t values(200, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(199, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(198, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(197, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(196, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(195, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(194, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(193, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(192, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(191, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(190, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(189, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(188, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(187, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(186, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(185, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(184, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(183, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(182, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(181, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(180, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(179, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(178, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(177, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(176, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(175, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(174, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(173, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(172, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(171, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(170, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(169, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(168, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(167, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(166, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(165, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(164, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(163, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(162, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(161, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(160, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(159, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(158, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(157, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(156, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(155, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(154, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(153, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(152, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(151, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(150, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(149, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(148, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(147, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(146, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(145, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(144, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(143, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(142, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(141, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(140, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(139, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(138, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(137, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(136, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(135, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(134, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(133, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(132, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(131, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(130, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(129, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(128, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(127, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(126, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(125, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(124, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(123, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(122, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(121, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(120, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(119, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(118, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(117, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(116, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(115, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(114, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(113, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(112, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(111, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(110, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(109, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(108, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(107, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(106, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(105, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(104, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(103, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(102, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(101, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(79, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(78, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(77, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(76, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(75, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(74, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(73, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(72, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(71, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(70, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(69, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(68, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(67, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(66, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(65, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(64, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(63, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(62, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(61, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(60, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(59, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(58, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(57, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(56, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(55, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(54, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(53, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(52, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(51, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(50, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(49, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(48, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(47, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(46, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(45, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(44, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(43, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(42, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(41, 'Hello OceanBase & Happy New Year', 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select * from test_multi_minor_merge_t;
|
||||
num str tag
|
||||
select * from test_multi_minor_merge_t where num > 190;
|
||||
num str tag
|
||||
200 Hello OceanBase & Happy New Year 1
|
||||
199 Hello OceanBase & Happy New Year 1
|
||||
198 Hello OceanBase & Happy New Year 1
|
||||
197 Hello OceanBase & Happy New Year 1
|
||||
196 Hello OceanBase & Happy New Year 1
|
||||
195 Hello OceanBase & Happy New Year 1
|
||||
194 Hello OceanBase & Happy New Year 1
|
||||
193 Hello OceanBase & Happy New Year 1
|
||||
192 Hello OceanBase & Happy New Year 1
|
||||
191 Hello OceanBase & Happy New Year 1
|
||||
insert into test_multi_minor_merge_t values(40, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(39, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(38, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(37, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(36, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(35, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(34, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(33, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(32, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(31, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(30, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(29, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(28, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(27, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(26, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(25, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(24, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(23, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(22, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(21, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(20, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(19, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(18, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(17, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(16, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(15, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(14, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(13, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(12, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(11, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(10, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(9, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(8, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(7, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(6, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(5, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(4, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(3, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(2, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_multi_minor_merge_t values(1, 'Hello OceanBase & Happy New Year', 1);
|
||||
alter system minor freeze;
|
||||
commit;
|
||||
select * from test_multi_minor_merge_t where num > 190;
|
||||
num str tag
|
||||
200 Hello OceanBase & Happy New Year 1
|
||||
199 Hello OceanBase & Happy New Year 1
|
||||
198 Hello OceanBase & Happy New Year 1
|
||||
197 Hello OceanBase & Happy New Year 1
|
||||
196 Hello OceanBase & Happy New Year 1
|
||||
195 Hello OceanBase & Happy New Year 1
|
||||
194 Hello OceanBase & Happy New Year 1
|
||||
193 Hello OceanBase & Happy New Year 1
|
||||
192 Hello OceanBase & Happy New Year 1
|
||||
191 Hello OceanBase & Happy New Year 1
|
||||
select count(*) from test_multi_minor_merge_t;
|
||||
count(*)
|
||||
200
|
||||
drop table test_multi_minor_merge_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,41 @@
|
||||
drop table if exists t1;
|
||||
create table t1(a int);
|
||||
begin;
|
||||
insert into t1 value(1);
|
||||
insert into t1 value(2);
|
||||
insert into t1 value(3);
|
||||
insert into t1 value(4);
|
||||
insert into t1 value(5);
|
||||
insert into t1 value(6);
|
||||
set ob_query_timeout=100000000;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1;
|
||||
a
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
commit;
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
drop table t1;
|
||||
@ -0,0 +1,99 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
drop table if exists query_uncommitted_data2;
|
||||
create table query_uncommitted_data2(id int primary key, k int);
|
||||
insert into query_uncommitted_data2 value(1,1);
|
||||
insert into query_uncommitted_data2 value(2,2);
|
||||
begin;
|
||||
insert into query_uncommitted_data2 value(3,3);
|
||||
insert into query_uncommitted_data2 value(4,4);
|
||||
insert into query_uncommitted_data2 value(5,5);
|
||||
select * from query_uncommitted_data2;
|
||||
id k
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
select * from query_uncommitted_data2 where id=3;
|
||||
id k
|
||||
3 3
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from query_uncommitted_data2;
|
||||
id k
|
||||
1 1
|
||||
2 2
|
||||
select * from query_uncommitted_data2 where id=1;
|
||||
id k
|
||||
1 1
|
||||
select * from query_uncommitted_data2 where id=3;
|
||||
id k
|
||||
select * from query_uncommitted_data2 where id in (1,3);
|
||||
id k
|
||||
1 1
|
||||
3 3
|
||||
commit;
|
||||
select * from query_uncommitted_data2 where id=5;
|
||||
id k
|
||||
5 5
|
||||
select * from query_uncommitted_data2;
|
||||
id k
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
select * from query_uncommitted_data2 where id=5;
|
||||
id k
|
||||
5 5
|
||||
select * from query_uncommitted_data2;
|
||||
id k
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
insert into query_uncommitted_data2 values(5,5);
|
||||
ERROR 23000: Duplicate entry '5' for key 'PRIMARY'
|
||||
begin;
|
||||
insert into query_uncommitted_data2 values(6,6);
|
||||
update query_uncommitted_data2 set k=10 where id=5;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
set ob_query_timeout = 1000000;
|
||||
set ob_trx_timeout = 1000000;
|
||||
insert into query_uncommitted_data2 values (6, 60);
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
update query_uncommitted_data2 set k=10 where id=6;
|
||||
update query_uncommitted_data2 set k=10 where id=5;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
select * from query_uncommitted_data2;
|
||||
id k
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
insert into query_uncommitted_data2 values(6,6);
|
||||
ERROR 23000: Duplicate entry '6' for key 'PRIMARY'
|
||||
select * from query_uncommitted_data2;
|
||||
id k
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 10
|
||||
6 6
|
||||
commit;
|
||||
select * from query_uncommitted_data2;
|
||||
id k
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 10
|
||||
6 6
|
||||
drop table query_uncommitted_data2;
|
||||
@ -0,0 +1,19 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_uncommitted_trx_minor_merge;
|
||||
create table test_uncommitted_trx_minor_merge(c1 int primary key, c2 int, c3 varchar(2048)) compression "none";
|
||||
insert into test_uncommitted_trx_minor_merge values (3001, 3001, "aaaa");
|
||||
alter system minor freeze;
|
||||
insert into test_uncommitted_trx_minor_merge values (3002, 3002, "aaaa");
|
||||
insert into test_uncommitted_trx_minor_merge values (4000,4000,"a");
|
||||
alter system minor freeze;
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select count(1) from test_uncommitted_trx_minor_merge;
|
||||
count(1)
|
||||
3003
|
||||
select count(1) from test_uncommitted_trx_minor_merge;
|
||||
count(1)
|
||||
3003
|
||||
drop table test_uncommitted_trx_minor_merge;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,172 @@
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_query_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_timeout = 60 * 1000 * 1000;
|
||||
set SESSION ob_trx_idle_timeout = 60 * 1000 * 1000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_rollback_sql_sequence_t;
|
||||
create table test_rollback_sql_sequence_t(num int, str varchar(50), tag int);
|
||||
begin;
|
||||
insert into test_rollback_sql_sequence_t value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
SAVEPOINT p1;
|
||||
insert into test_rollback_sql_sequence_t value(5, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(4, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(3, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(2, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(1, 'Hello OceanBase & Happy New Year', 2);
|
||||
SAVEPOINT p2;
|
||||
update test_rollback_sql_sequence_t set tag = (num + tag) * 10;
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 1010
|
||||
99 Hello OceanBase & Happy New Year 1000
|
||||
98 Hello OceanBase & Happy New Year 990
|
||||
97 Hello OceanBase & Happy New Year 980
|
||||
96 Hello OceanBase & Happy New Year 970
|
||||
95 Hello OceanBase & Happy New Year 960
|
||||
94 Hello OceanBase & Happy New Year 950
|
||||
93 Hello OceanBase & Happy New Year 940
|
||||
92 Hello OceanBase & Happy New Year 930
|
||||
91 Hello OceanBase & Happy New Year 920
|
||||
90 Hello OceanBase & Happy New Year 910
|
||||
89 Hello OceanBase & Happy New Year 900
|
||||
88 Hello OceanBase & Happy New Year 890
|
||||
87 Hello OceanBase & Happy New Year 880
|
||||
86 Hello OceanBase & Happy New Year 870
|
||||
85 Hello OceanBase & Happy New Year 860
|
||||
84 Hello OceanBase & Happy New Year 850
|
||||
83 Hello OceanBase & Happy New Year 840
|
||||
82 Hello OceanBase & Happy New Year 830
|
||||
81 Hello OceanBase & Happy New Year 820
|
||||
80 Hello OceanBase & Happy New Year 810
|
||||
5 Hello OceanBase & Happy New Year 70
|
||||
4 Hello OceanBase & Happy New Year 60
|
||||
3 Hello OceanBase & Happy New Year 50
|
||||
2 Hello OceanBase & Happy New Year 40
|
||||
1 Hello OceanBase & Happy New Year 30
|
||||
ROLLBACK TO SAVEPOINT p2;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 1
|
||||
99 Hello OceanBase & Happy New Year 1
|
||||
98 Hello OceanBase & Happy New Year 1
|
||||
97 Hello OceanBase & Happy New Year 1
|
||||
96 Hello OceanBase & Happy New Year 1
|
||||
95 Hello OceanBase & Happy New Year 1
|
||||
94 Hello OceanBase & Happy New Year 1
|
||||
93 Hello OceanBase & Happy New Year 1
|
||||
92 Hello OceanBase & Happy New Year 1
|
||||
91 Hello OceanBase & Happy New Year 1
|
||||
90 Hello OceanBase & Happy New Year 1
|
||||
89 Hello OceanBase & Happy New Year 1
|
||||
88 Hello OceanBase & Happy New Year 1
|
||||
87 Hello OceanBase & Happy New Year 1
|
||||
86 Hello OceanBase & Happy New Year 1
|
||||
85 Hello OceanBase & Happy New Year 1
|
||||
84 Hello OceanBase & Happy New Year 1
|
||||
83 Hello OceanBase & Happy New Year 1
|
||||
82 Hello OceanBase & Happy New Year 1
|
||||
81 Hello OceanBase & Happy New Year 1
|
||||
80 Hello OceanBase & Happy New Year 1
|
||||
5 Hello OceanBase & Happy New Year 2
|
||||
4 Hello OceanBase & Happy New Year 2
|
||||
3 Hello OceanBase & Happy New Year 2
|
||||
2 Hello OceanBase & Happy New Year 2
|
||||
1 Hello OceanBase & Happy New Year 2
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 1
|
||||
99 Hello OceanBase & Happy New Year 1
|
||||
98 Hello OceanBase & Happy New Year 1
|
||||
97 Hello OceanBase & Happy New Year 1
|
||||
96 Hello OceanBase & Happy New Year 1
|
||||
95 Hello OceanBase & Happy New Year 1
|
||||
94 Hello OceanBase & Happy New Year 1
|
||||
93 Hello OceanBase & Happy New Year 1
|
||||
92 Hello OceanBase & Happy New Year 1
|
||||
91 Hello OceanBase & Happy New Year 1
|
||||
90 Hello OceanBase & Happy New Year 1
|
||||
89 Hello OceanBase & Happy New Year 1
|
||||
88 Hello OceanBase & Happy New Year 1
|
||||
87 Hello OceanBase & Happy New Year 1
|
||||
86 Hello OceanBase & Happy New Year 1
|
||||
85 Hello OceanBase & Happy New Year 1
|
||||
84 Hello OceanBase & Happy New Year 1
|
||||
83 Hello OceanBase & Happy New Year 1
|
||||
82 Hello OceanBase & Happy New Year 1
|
||||
81 Hello OceanBase & Happy New Year 1
|
||||
80 Hello OceanBase & Happy New Year 1
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
num str tag
|
||||
commit;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 1
|
||||
99 Hello OceanBase & Happy New Year 1
|
||||
98 Hello OceanBase & Happy New Year 1
|
||||
97 Hello OceanBase & Happy New Year 1
|
||||
96 Hello OceanBase & Happy New Year 1
|
||||
95 Hello OceanBase & Happy New Year 1
|
||||
94 Hello OceanBase & Happy New Year 1
|
||||
93 Hello OceanBase & Happy New Year 1
|
||||
92 Hello OceanBase & Happy New Year 1
|
||||
91 Hello OceanBase & Happy New Year 1
|
||||
90 Hello OceanBase & Happy New Year 1
|
||||
89 Hello OceanBase & Happy New Year 1
|
||||
88 Hello OceanBase & Happy New Year 1
|
||||
87 Hello OceanBase & Happy New Year 1
|
||||
86 Hello OceanBase & Happy New Year 1
|
||||
85 Hello OceanBase & Happy New Year 1
|
||||
84 Hello OceanBase & Happy New Year 1
|
||||
83 Hello OceanBase & Happy New Year 1
|
||||
82 Hello OceanBase & Happy New Year 1
|
||||
81 Hello OceanBase & Happy New Year 1
|
||||
80 Hello OceanBase & Happy New Year 1
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 1
|
||||
99 Hello OceanBase & Happy New Year 1
|
||||
98 Hello OceanBase & Happy New Year 1
|
||||
97 Hello OceanBase & Happy New Year 1
|
||||
96 Hello OceanBase & Happy New Year 1
|
||||
95 Hello OceanBase & Happy New Year 1
|
||||
94 Hello OceanBase & Happy New Year 1
|
||||
93 Hello OceanBase & Happy New Year 1
|
||||
92 Hello OceanBase & Happy New Year 1
|
||||
91 Hello OceanBase & Happy New Year 1
|
||||
90 Hello OceanBase & Happy New Year 1
|
||||
89 Hello OceanBase & Happy New Year 1
|
||||
88 Hello OceanBase & Happy New Year 1
|
||||
87 Hello OceanBase & Happy New Year 1
|
||||
86 Hello OceanBase & Happy New Year 1
|
||||
85 Hello OceanBase & Happy New Year 1
|
||||
84 Hello OceanBase & Happy New Year 1
|
||||
83 Hello OceanBase & Happy New Year 1
|
||||
82 Hello OceanBase & Happy New Year 1
|
||||
81 Hello OceanBase & Happy New Year 1
|
||||
80 Hello OceanBase & Happy New Year 1
|
||||
drop table test_rollback_sql_sequence_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,62 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists t1;
|
||||
create table t1(c1 int primary key, c2 varchar(50), c3 int, c4 datetime(6), c5 datetime(6)) table_mode = 'queuing';
|
||||
begin;
|
||||
SAVEPOINT p0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
SAVEPOINT p1;
|
||||
insert into t1 value(5, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(4, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(3, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(2, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(1, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
SAVEPOINT p2;
|
||||
update t1 set c3 = c1;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
SAVEPOINT p3;
|
||||
update t1 set c2 = 'rollback rooooooooll';
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select count(*) from t1 where c2 like '%oceanbase%';
|
||||
count(*)
|
||||
0
|
||||
ROLLBACK TO SAVEPOINT p3;
|
||||
select count(*) from t1 where c2 like '%oceanbase%';
|
||||
count(*)
|
||||
35
|
||||
select count(*) from t1 where c3 = c1;
|
||||
count(*)
|
||||
35
|
||||
ROLLBACK TO SAVEPOINT p2;
|
||||
select count(*) from t1 where c3 = c1;
|
||||
count(*)
|
||||
1
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
30
|
||||
ROLLBACK TO SAVEPOINT p0;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
select * from t1;
|
||||
c1 c2 c3 c4 c5
|
||||
commit;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1;
|
||||
c1 c2 c3 c4 c5
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,49 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists t1;
|
||||
create table t1(c1 int primary key, c2 varchar(50), c3 int, c4 datetime(6), c5 datetime(6)) table_mode = 'queuing';
|
||||
begin;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
SAVEPOINT p1;
|
||||
insert into t1 value(5, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(4, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(3, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(2, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(1, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
35
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
select count(*) from t1 where c1 < 1000;
|
||||
count(*)
|
||||
0
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
40
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
30
|
||||
update t1 set c3 = c1 * c3;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select count(*) from t1 where c3 % c1 = 0;
|
||||
count(*)
|
||||
40
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
select count(*) from t1 where c3 % c1 = 0;
|
||||
count(*)
|
||||
1
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,58 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
alter system set syslog_io_bandwidth_limit = '100G';
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists t1;
|
||||
create table t1(num int, str varchar(2000), tag int);
|
||||
insert into t1 values(1, repeat('Hello OceanBase', 50), 1);
|
||||
begin;
|
||||
SAVEPOINT p1;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
num str tag
|
||||
1 Hello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBaseHello OceanBase 1
|
||||
update t1 set str = repeat('Hello OceanBase9', 50) where num = 1;
|
||||
SAVEPOINT p2;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
ROLLBACK TO SAVEPOINT p2;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
commit;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
num str tag
|
||||
1 Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9 1
|
||||
begin;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
rollback;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
num str tag
|
||||
1 Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9Hello OceanBase9 1
|
||||
begin;
|
||||
update t1 set str = repeat('Hello OceanBase0.', 50) where num = 1;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
commit;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
num str tag
|
||||
1 Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0.Hello OceanBase0. 1
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,203 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_rollback_trans_t;
|
||||
create table test_rollback_trans_t(num int, str varchar(50), tag int);
|
||||
begin;
|
||||
insert into test_rollback_trans_t value(1, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(2, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(3, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(4, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(5, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(6, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(7, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(8, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(9, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(10, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(11, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(12, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(13, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(14, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(15, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(16, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(17, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(18, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(19, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(20, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_trans_t value(21, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(22, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(23, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(24, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(25, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(26, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(27, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(28, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(29, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(30, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(31, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(32, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(33, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(34, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(35, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(36, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(37, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(38, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(39, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(40, 'Hello OceanBase & Happy New Year', 2);
|
||||
update test_rollback_trans_t set tag = (num + tag) * 10;
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
1 Hello OceanBase & Happy New Year 20
|
||||
2 Hello OceanBase & Happy New Year 30
|
||||
3 Hello OceanBase & Happy New Year 40
|
||||
4 Hello OceanBase & Happy New Year 50
|
||||
5 Hello OceanBase & Happy New Year 60
|
||||
6 Hello OceanBase & Happy New Year 70
|
||||
7 Hello OceanBase & Happy New Year 80
|
||||
8 Hello OceanBase & Happy New Year 90
|
||||
9 Hello OceanBase & Happy New Year 100
|
||||
10 Hello OceanBase & Happy New Year 110
|
||||
11 Hello OceanBase & Happy New Year 120
|
||||
12 Hello OceanBase & Happy New Year 130
|
||||
13 Hello OceanBase & Happy New Year 140
|
||||
14 Hello OceanBase & Happy New Year 150
|
||||
15 Hello OceanBase & Happy New Year 160
|
||||
16 Hello OceanBase & Happy New Year 170
|
||||
17 Hello OceanBase & Happy New Year 180
|
||||
18 Hello OceanBase & Happy New Year 190
|
||||
19 Hello OceanBase & Happy New Year 200
|
||||
20 Hello OceanBase & Happy New Year 210
|
||||
21 Hello OceanBase & Happy New Year 230
|
||||
22 Hello OceanBase & Happy New Year 240
|
||||
23 Hello OceanBase & Happy New Year 250
|
||||
24 Hello OceanBase & Happy New Year 260
|
||||
25 Hello OceanBase & Happy New Year 270
|
||||
26 Hello OceanBase & Happy New Year 280
|
||||
27 Hello OceanBase & Happy New Year 290
|
||||
28 Hello OceanBase & Happy New Year 300
|
||||
29 Hello OceanBase & Happy New Year 310
|
||||
30 Hello OceanBase & Happy New Year 320
|
||||
31 Hello OceanBase & Happy New Year 330
|
||||
32 Hello OceanBase & Happy New Year 340
|
||||
33 Hello OceanBase & Happy New Year 350
|
||||
34 Hello OceanBase & Happy New Year 360
|
||||
35 Hello OceanBase & Happy New Year 370
|
||||
36 Hello OceanBase & Happy New Year 380
|
||||
37 Hello OceanBase & Happy New Year 390
|
||||
38 Hello OceanBase & Happy New Year 400
|
||||
39 Hello OceanBase & Happy New Year 410
|
||||
40 Hello OceanBase & Happy New Year 420
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
1 Hello OceanBase & Happy New Year 20
|
||||
2 Hello OceanBase & Happy New Year 30
|
||||
3 Hello OceanBase & Happy New Year 40
|
||||
4 Hello OceanBase & Happy New Year 50
|
||||
5 Hello OceanBase & Happy New Year 60
|
||||
6 Hello OceanBase & Happy New Year 70
|
||||
7 Hello OceanBase & Happy New Year 80
|
||||
8 Hello OceanBase & Happy New Year 90
|
||||
9 Hello OceanBase & Happy New Year 100
|
||||
10 Hello OceanBase & Happy New Year 110
|
||||
11 Hello OceanBase & Happy New Year 120
|
||||
12 Hello OceanBase & Happy New Year 130
|
||||
13 Hello OceanBase & Happy New Year 140
|
||||
14 Hello OceanBase & Happy New Year 150
|
||||
15 Hello OceanBase & Happy New Year 160
|
||||
16 Hello OceanBase & Happy New Year 170
|
||||
17 Hello OceanBase & Happy New Year 180
|
||||
18 Hello OceanBase & Happy New Year 190
|
||||
19 Hello OceanBase & Happy New Year 200
|
||||
20 Hello OceanBase & Happy New Year 210
|
||||
21 Hello OceanBase & Happy New Year 230
|
||||
22 Hello OceanBase & Happy New Year 240
|
||||
23 Hello OceanBase & Happy New Year 250
|
||||
24 Hello OceanBase & Happy New Year 260
|
||||
25 Hello OceanBase & Happy New Year 270
|
||||
26 Hello OceanBase & Happy New Year 280
|
||||
27 Hello OceanBase & Happy New Year 290
|
||||
28 Hello OceanBase & Happy New Year 300
|
||||
29 Hello OceanBase & Happy New Year 310
|
||||
30 Hello OceanBase & Happy New Year 320
|
||||
31 Hello OceanBase & Happy New Year 330
|
||||
32 Hello OceanBase & Happy New Year 340
|
||||
33 Hello OceanBase & Happy New Year 350
|
||||
34 Hello OceanBase & Happy New Year 360
|
||||
35 Hello OceanBase & Happy New Year 370
|
||||
36 Hello OceanBase & Happy New Year 380
|
||||
37 Hello OceanBase & Happy New Year 390
|
||||
38 Hello OceanBase & Happy New Year 400
|
||||
39 Hello OceanBase & Happy New Year 410
|
||||
40 Hello OceanBase & Happy New Year 420
|
||||
ROLLBACK;
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
insert into test_rollback_trans_t value(41, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(42, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(43, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(44, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(45, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(46, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(47, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(48, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(49, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_trans_t value(50, 'Hello OceanBase & Happy New Year', 2);
|
||||
begin;
|
||||
update test_rollback_trans_t set tag = (num + tag) * 10;
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
41 Hello OceanBase & Happy New Year 2
|
||||
42 Hello OceanBase & Happy New Year 2
|
||||
43 Hello OceanBase & Happy New Year 2
|
||||
44 Hello OceanBase & Happy New Year 2
|
||||
45 Hello OceanBase & Happy New Year 2
|
||||
46 Hello OceanBase & Happy New Year 2
|
||||
47 Hello OceanBase & Happy New Year 2
|
||||
48 Hello OceanBase & Happy New Year 2
|
||||
49 Hello OceanBase & Happy New Year 2
|
||||
50 Hello OceanBase & Happy New Year 2
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
41 Hello OceanBase & Happy New Year 430
|
||||
42 Hello OceanBase & Happy New Year 440
|
||||
43 Hello OceanBase & Happy New Year 450
|
||||
44 Hello OceanBase & Happy New Year 460
|
||||
45 Hello OceanBase & Happy New Year 470
|
||||
46 Hello OceanBase & Happy New Year 480
|
||||
47 Hello OceanBase & Happy New Year 490
|
||||
48 Hello OceanBase & Happy New Year 500
|
||||
49 Hello OceanBase & Happy New Year 510
|
||||
50 Hello OceanBase & Happy New Year 520
|
||||
ROLLBACK;
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
41 Hello OceanBase & Happy New Year 2
|
||||
42 Hello OceanBase & Happy New Year 2
|
||||
43 Hello OceanBase & Happy New Year 2
|
||||
44 Hello OceanBase & Happy New Year 2
|
||||
45 Hello OceanBase & Happy New Year 2
|
||||
46 Hello OceanBase & Happy New Year 2
|
||||
47 Hello OceanBase & Happy New Year 2
|
||||
48 Hello OceanBase & Happy New Year 2
|
||||
49 Hello OceanBase & Happy New Year 2
|
||||
50 Hello OceanBase & Happy New Year 2
|
||||
select * from test_rollback_trans_t;
|
||||
num str tag
|
||||
41 Hello OceanBase & Happy New Year 2
|
||||
42 Hello OceanBase & Happy New Year 2
|
||||
43 Hello OceanBase & Happy New Year 2
|
||||
44 Hello OceanBase & Happy New Year 2
|
||||
45 Hello OceanBase & Happy New Year 2
|
||||
46 Hello OceanBase & Happy New Year 2
|
||||
47 Hello OceanBase & Happy New Year 2
|
||||
48 Hello OceanBase & Happy New Year 2
|
||||
49 Hello OceanBase & Happy New Year 2
|
||||
50 Hello OceanBase & Happy New Year 2
|
||||
drop table test_rollback_trans_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,52 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
drop table if exists t1_fuse;
|
||||
create table t1_fuse(a int primary key, b int, c int);
|
||||
insert into t1_fuse values(5, 1, 1);
|
||||
insert into t1_fuse values(4, 1, 1);
|
||||
insert into t1_fuse values(3, 1, 1);
|
||||
insert into t1_fuse values(2, 1, 1);
|
||||
insert into t1_fuse values(1, 1, 1);
|
||||
update t1_fuse set b = 2 where a = 2;
|
||||
update t1_fuse set b = 3 where a = 2;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 1
|
||||
set autocommit=0;
|
||||
begin;
|
||||
update t1_fuse set c = 2 where a = 2;
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 2
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 2
|
||||
update t1_fuse set c = 3 where a = 2;
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 3
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 3
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 1
|
||||
rollback;
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 1
|
||||
select * from t1_fuse where a = 2;
|
||||
a b c
|
||||
2 3 1
|
||||
select * from t1_fuse order by a asc;
|
||||
a b c
|
||||
1 1 1
|
||||
2 3 1
|
||||
3 1 1
|
||||
4 1 1
|
||||
5 1 1
|
||||
drop table t1_fuse;
|
||||
@ -0,0 +1,60 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
drop table if exists test_uncommitted_trx_minor_merge;
|
||||
create table test_uncommitted_trx_minor_merge(a int primary key, b int, key ib(b));
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge value(1, 1);
|
||||
insert into test_uncommitted_trx_minor_merge value(2, 2);
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
a b
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
a b
|
||||
1 1
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
a b
|
||||
update test_uncommitted_trx_minor_merge set b = 10 where a = 1;
|
||||
commit;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
a b
|
||||
1 10
|
||||
select * from test_uncommitted_trx_minor_merge where a = 2;
|
||||
a b
|
||||
2 2
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
a b
|
||||
1 10
|
||||
select * from test_uncommitted_trx_minor_merge where a = 2;
|
||||
a b
|
||||
2 2
|
||||
insert into test_uncommitted_trx_minor_merge values (3,3);
|
||||
begin;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3 for update;
|
||||
a b
|
||||
3 3
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
set ob_query_timeout = 1000000;
|
||||
set ob_trx_timeout = 1000000;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3 for update nowait;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
set ob_query_timeout = 1000000000000;
|
||||
set ob_trx_timeout = 1000000000000;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3;
|
||||
a b
|
||||
3 3
|
||||
update test_uncommitted_trx_minor_merge set b = 30 where a = 3;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3;
|
||||
a b
|
||||
3 30
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
rollback;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3;
|
||||
a b
|
||||
3 3
|
||||
drop table test_uncommitted_trx_minor_merge;
|
||||
@ -0,0 +1,38 @@
|
||||
drop table if exists t1;
|
||||
create table t1(
|
||||
obschema_c_0_68XcHo tinyint(255) NOT NULL,
|
||||
obschema_c_1_lTMGZYJ varchar(200) NULL default NULL,
|
||||
obschema_c_2_ENEd tinyint(255) NULL,
|
||||
obschema_c_3_OpRK varbinary(255) NULL default NULL,
|
||||
obschema_c_4_fpdB float NOT NULL,
|
||||
obschema_c_5_Gq varbinary(255) NULL default NULL,
|
||||
obschema_c_6_u6dri varchar(150) NOT NULL default 'CDEFGHI01',
|
||||
obschema_c_7_XB decimal(20,12) NOT NULL default 0.20329070,
|
||||
obschema_c_8_7cq4kl double NULL default NULL,
|
||||
obschema_c_9_ywrfyF decimal(10,5) NOT NULL default 0.01001) table_mode='queuing';
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
alter system major freeze tenant = sys;
|
||||
alter system major freeze tenant = all_user;
|
||||
alter system major freeze tenant = all_meta;
|
||||
alter table t1 add column obschema_c_10_Y decimal(25,10) NOT NULL default 0.20349070 FIRST ,
|
||||
add column obschema_c_11_z float NOT NULL default 0.123470 AFTER obschema_c_0_68XcHo,
|
||||
add column obschema_c_12_PzG varchar(20) NULL default 'aEFGHI01' BEFORE obschema_c_1_lTMGZYJ;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
alter table t1 drop column obschema_c_3_OpRK;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
select * from t1 limit 1;
|
||||
obschema_c_10_Y obschema_c_0_68XcHo obschema_c_11_z obschema_c_12_PzG obschema_c_1_lTMGZYJ obschema_c_2_ENEd obschema_c_4_fpdB obschema_c_5_Gq obschema_c_6_u6dri obschema_c_7_XB obschema_c_8_7cq4kl obschema_c_9_ywrfyF
|
||||
0.2034907000 0 0.12347 aEFGHI01 Hello OceanBase & Happy New Year1 0 0 9153608021209109295703075050360401 Hello OceanBase & Happy New Year3 0.000000000000 0 0.00000
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
150
|
||||
drop table t1;
|
||||
@ -0,0 +1,121 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
drop table if exists test_update_uncommitted_data;
|
||||
create table test_update_uncommitted_data(num int, str varchar(50), tag int);
|
||||
begin;
|
||||
insert into test_update_uncommitted_data value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
alter system minor freeze;
|
||||
update test_update_uncommitted_data set tag = num + tag where tag = 1;
|
||||
alter system minor freeze;
|
||||
insert into test_update_uncommitted_data value(50, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(49, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(48, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(47, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(46, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(45, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(44, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(43, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(42, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(41, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(40, 'Hello OceanBase & Happy New Year', 1);
|
||||
alter system minor freeze;
|
||||
alter system set minor_compact_trigger = 1;
|
||||
select * from test_update_uncommitted_data;
|
||||
num str tag
|
||||
select * from test_update_uncommitted_data;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 101
|
||||
99 Hello OceanBase & Happy New Year 100
|
||||
98 Hello OceanBase & Happy New Year 99
|
||||
97 Hello OceanBase & Happy New Year 98
|
||||
96 Hello OceanBase & Happy New Year 97
|
||||
95 Hello OceanBase & Happy New Year 96
|
||||
94 Hello OceanBase & Happy New Year 95
|
||||
93 Hello OceanBase & Happy New Year 94
|
||||
92 Hello OceanBase & Happy New Year 93
|
||||
91 Hello OceanBase & Happy New Year 92
|
||||
90 Hello OceanBase & Happy New Year 91
|
||||
89 Hello OceanBase & Happy New Year 90
|
||||
88 Hello OceanBase & Happy New Year 89
|
||||
87 Hello OceanBase & Happy New Year 88
|
||||
86 Hello OceanBase & Happy New Year 87
|
||||
85 Hello OceanBase & Happy New Year 86
|
||||
84 Hello OceanBase & Happy New Year 85
|
||||
83 Hello OceanBase & Happy New Year 84
|
||||
82 Hello OceanBase & Happy New Year 83
|
||||
81 Hello OceanBase & Happy New Year 82
|
||||
80 Hello OceanBase & Happy New Year 81
|
||||
50 Hello OceanBase & Happy New Year 1
|
||||
49 Hello OceanBase & Happy New Year 1
|
||||
48 Hello OceanBase & Happy New Year 1
|
||||
47 Hello OceanBase & Happy New Year 1
|
||||
46 Hello OceanBase & Happy New Year 1
|
||||
45 Hello OceanBase & Happy New Year 1
|
||||
44 Hello OceanBase & Happy New Year 1
|
||||
43 Hello OceanBase & Happy New Year 1
|
||||
42 Hello OceanBase & Happy New Year 1
|
||||
41 Hello OceanBase & Happy New Year 1
|
||||
40 Hello OceanBase & Happy New Year 1
|
||||
update test_update_uncommitted_data set tag = num + tag where tag = 1;
|
||||
alter system minor freeze;
|
||||
commit;
|
||||
select * from test_update_uncommitted_data;
|
||||
num str tag
|
||||
100 Hello OceanBase & Happy New Year 101
|
||||
99 Hello OceanBase & Happy New Year 100
|
||||
98 Hello OceanBase & Happy New Year 99
|
||||
97 Hello OceanBase & Happy New Year 98
|
||||
96 Hello OceanBase & Happy New Year 97
|
||||
95 Hello OceanBase & Happy New Year 96
|
||||
94 Hello OceanBase & Happy New Year 95
|
||||
93 Hello OceanBase & Happy New Year 94
|
||||
92 Hello OceanBase & Happy New Year 93
|
||||
91 Hello OceanBase & Happy New Year 92
|
||||
90 Hello OceanBase & Happy New Year 91
|
||||
89 Hello OceanBase & Happy New Year 90
|
||||
88 Hello OceanBase & Happy New Year 89
|
||||
87 Hello OceanBase & Happy New Year 88
|
||||
86 Hello OceanBase & Happy New Year 87
|
||||
85 Hello OceanBase & Happy New Year 86
|
||||
84 Hello OceanBase & Happy New Year 85
|
||||
83 Hello OceanBase & Happy New Year 84
|
||||
82 Hello OceanBase & Happy New Year 83
|
||||
81 Hello OceanBase & Happy New Year 82
|
||||
80 Hello OceanBase & Happy New Year 81
|
||||
50 Hello OceanBase & Happy New Year 51
|
||||
49 Hello OceanBase & Happy New Year 50
|
||||
48 Hello OceanBase & Happy New Year 49
|
||||
47 Hello OceanBase & Happy New Year 48
|
||||
46 Hello OceanBase & Happy New Year 47
|
||||
45 Hello OceanBase & Happy New Year 46
|
||||
44 Hello OceanBase & Happy New Year 45
|
||||
43 Hello OceanBase & Happy New Year 44
|
||||
42 Hello OceanBase & Happy New Year 43
|
||||
41 Hello OceanBase & Happy New Year 42
|
||||
40 Hello OceanBase & Happy New Year 41
|
||||
select count(*) from test_update_uncommitted_data;
|
||||
count(*)
|
||||
32
|
||||
drop table test_update_uncommitted_data;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,44 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
alter system set minor_compact_trigger = 1;
|
||||
drop table if exists t1;
|
||||
create table t1(c1 int, c2 int, c3 varchar(100), v1 varchar(1000), v2 varchar(1000), r1 int, r2 int, primary key(c1, c2, c3));
|
||||
create index idx1 on t1(c1,c2,c3,r2,r1) storing(v1) LOCAL;
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
c1 c2 c3 r1 r2 v1
|
||||
1 1 c300000000000001 1 1 v100000000000000000001
|
||||
2 2 c300000000000002 2 2 v100000000000000000002
|
||||
update t1 set v1 = "11111111111" where c1 = 1 and c2 = 1;
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
c1 c2 c3 r1 r2 v1
|
||||
1 1 c300000000000001 1 1 11111111111
|
||||
2 2 c300000000000002 2 2 v100000000000000000002
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
SAVEPOINT p1;
|
||||
delete from t1 where c2 = 1;
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
c1 c2 c3 r1 r2 v1
|
||||
2 2 c300000000000002 2 2 v100000000000000000002
|
||||
insert into t1(c1, c2, c3, v1) values(1, 1, "c300000000000001", "v19999999");
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
update t1 set r2 = 77 where c1 = 1 and c2 = 1;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
commit;
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
c1 c2 c3 r1 r2 v1
|
||||
1 1 c300000000000001 1 77 11111111111
|
||||
2 2 c300000000000002 2 2 v100000000000000000002
|
||||
select * from t1;
|
||||
c1 c2 c3 v1 v2 r1 r2
|
||||
1 1 c300000000000001 11111111111 v200000000000000000001 1 77
|
||||
2 2 c300000000000002 v100000000000000000002 v200000000000000000002 2 2
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,119 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下,含多次dml操作下,多次minor merge的正确性
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 600 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_big_uncommitted_trans_t;
|
||||
--enable_warnings
|
||||
|
||||
connection conn1;
|
||||
create table test_big_uncommitted_trans_t(i int primary key, c1 char(30), c256 char(255), dt datetime(6), d datetime(6));
|
||||
let $__freeze_table_name__ = 'test_big_uncommitted_trans_t';
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
|
||||
|
||||
connection conn1;
|
||||
#insert
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $i=0;
|
||||
while($i < 3000)
|
||||
{
|
||||
eval insert into test_big_uncommitted_trans_t(i,c1,c256,dt,d) values($i,'1','$i','2012-10-10 12:00:00','2012-10-10');
|
||||
inc $i;
|
||||
}
|
||||
|
||||
#replace
|
||||
let $i=3000;
|
||||
while($i < 6000)
|
||||
{
|
||||
eval replace into test_big_uncommitted_trans_t(i,c1,c256,dt,d) values($i,'1','$i+3000','2012-10-10 12:00:00','2012-10-10');
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
#select in other connection(EMPTY)
|
||||
connection conn2;
|
||||
select * from test_big_uncommitted_trans_t where i = 999;
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
#update
|
||||
let $i=0;
|
||||
while($i < 3000)
|
||||
{
|
||||
eval update test_big_uncommitted_trans_t set c1='update_$i' where i=$i;
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
commit;
|
||||
|
||||
connection conn2;
|
||||
select * from test_big_uncommitted_trans_t where i = 1999;
|
||||
|
||||
connection conn1;
|
||||
select count(*) from test_big_uncommitted_trans_t;
|
||||
|
||||
connection conn2;
|
||||
select * from test_big_uncommitted_trans_t where i = 999;
|
||||
|
||||
connection conn1;
|
||||
#delete
|
||||
begin;
|
||||
--disable_query_log
|
||||
let $i=0;
|
||||
while($i < 3000)
|
||||
{
|
||||
eval delete from test_big_uncommitted_trans_t where i=$i;
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
# test mini minor merge
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
connection conn2;
|
||||
select * from test_big_uncommitted_trans_t where i = 999;
|
||||
|
||||
drop table test_big_uncommitted_trans_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,144 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: storage
|
||||
# description: for minor merge with uncommitted trx
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists test_commit_after_minor_merge_t;
|
||||
--enable_warnings
|
||||
|
||||
create table test_commit_after_minor_merge_t(c1 int primary key, c2 int);
|
||||
let $__freeze_table_name__ = 'test_commit_after_minor_merge_t';
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= 'test_commit_after_minor_merge_t', tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_commit_after_minor_merge_t', table_id, 1);
|
||||
|
||||
# prepare data, minor merge with dirty trx but committed in sstable
|
||||
connection conn1;
|
||||
let $__tablet_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tablet_id from oceanbase.__all_tablet_to_ls where table_id = $__table_id__, tablet_id, 1);
|
||||
|
||||
insert into test_commit_after_minor_merge_t values (0,0);
|
||||
begin;
|
||||
update test_commit_after_minor_merge_t set c2 = 10 where c1 = 0;
|
||||
insert into test_commit_after_minor_merge_t values (3,3);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
|
||||
let $count = query_get_value(select count(1) as c from oceanbase.__all_virtual_table_mgr where tablet_id = $__tablet_id__ and size > 0 group by svr_port order by svr_port limit 1, c, 1);
|
||||
# one minor sstable
|
||||
echo $count;
|
||||
|
||||
|
||||
# commit after minor merged
|
||||
connection conn1;
|
||||
insert into test_commit_after_minor_merge_t values (4,4);
|
||||
begin;
|
||||
insert into test_commit_after_minor_merge_t values (1,1);
|
||||
insert into test_commit_after_minor_merge_t values (2,2);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
let $count = query_get_value(select count(1) as c from oceanbase.__all_virtual_table_mgr where tablet_id = $__tablet_id__ and size > 0 group by svr_port order by svr_port limit 1, c, 1);
|
||||
# two minor sstable
|
||||
echo $count;
|
||||
|
||||
connection conn1;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
|
||||
# major freeze, check if uncommitted row is correctly merged into major sstable
|
||||
connection conn0;
|
||||
alter system major freeze tenant = sys;
|
||||
alter system major freeze tenant = all_user;
|
||||
alter system major freeze tenant = all_meta;
|
||||
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
|
||||
# long trx span two minor freeze and major freeze
|
||||
connection conn1;
|
||||
insert into test_commit_after_minor_merge_t values (5,5);
|
||||
insert into test_commit_after_minor_merge_t values (6,6);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
delete from test_commit_after_minor_merge_t where c1 <= 2;
|
||||
|
||||
connection conn0;
|
||||
alter system major freeze tenant = sys;
|
||||
alter system major freeze tenant = all_user;
|
||||
alter system major freeze tenant = all_meta;
|
||||
let $major_snapshot = query_get_value(select frozen_scn from __all_virtual_freeze_info order by frozen_scn desc limit 1, frozen_scn, 1);
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
|
||||
# long trx rollback
|
||||
connection conn1;
|
||||
begin;
|
||||
insert into test_commit_after_minor_merge_t values (7,7);
|
||||
update test_commit_after_minor_merge_t set c2 = 60 where c1 = 6;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
delete from test_commit_after_minor_merge_t where c1 = 5;
|
||||
|
||||
connection conn1;
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
rollback;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
|
||||
# minor freeze again, new mini sstable should be empty since rollbacked data will be recycled
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_commit_after_minor_merge_t;
|
||||
|
||||
drop table test_commit_after_minor_merge_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,143 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下,执行delte操作下,多次minor merge的正确性
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_delete_uncommitted_data;
|
||||
--enable_warnings
|
||||
|
||||
create table test_delete_uncommitted_data(num int, str varchar(50), tag int);
|
||||
let $__freeze_table_name__ = 'test_delete_uncommitted_data';
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= 'test_delete_uncommitted_data', tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_delete_uncommitted_data', table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
|
||||
connection conn1;
|
||||
begin;
|
||||
#事务开始 插入数据
|
||||
insert into test_delete_uncommitted_data value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
#删除数据 再在本事务中查询
|
||||
delete from test_delete_uncommitted_data where tag = 1;
|
||||
select * from test_delete_uncommitted_data;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn2;
|
||||
#不同事务查询sstable未提交数据
|
||||
select * from test_delete_uncommitted_data;
|
||||
|
||||
connection conn1;
|
||||
insert into test_delete_uncommitted_data value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(50, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(49, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(48, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(47, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(46, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(45, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(44, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(43, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(42, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(41, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_delete_uncommitted_data value(40, 'Hello OceanBase & Happy New Year', 1);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
# test mini minor merge
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务查询sstable未提交数据
|
||||
select * from test_delete_uncommitted_data;
|
||||
|
||||
connection conn1;
|
||||
#同一事务查询sstable未提交数据
|
||||
select * from test_delete_uncommitted_data;
|
||||
|
||||
connection conn1;
|
||||
update test_delete_uncommitted_data set tag = num + tag where num % 2 = 1;
|
||||
delete from test_delete_uncommitted_data where tag != 1;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
#不同查sstable未提交数据(COMMIT)
|
||||
connection conn2;
|
||||
select * from test_delete_uncommitted_data;
|
||||
select count(*) from test_delete_uncommitted_data;
|
||||
|
||||
drop table test_delete_uncommitted_data;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,113 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: for minor merge with uncommitted trx
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__ = query_get_value(select tenant_id from oceanbase.__all_tenant where tenant_name = 'mysql', tenant_id, 1);
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_uncommitted_trx_minor_merge;
|
||||
--enable_warnings
|
||||
|
||||
create table test_uncommitted_trx_minor_merge(c1 int primary key, c2 int);
|
||||
let $__freeze_table_name__ = 'test_uncommitted_trx_minor_merge';
|
||||
|
||||
insert into test_uncommitted_trx_minor_merge values (1,1);
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_uncommitted_trx_minor_merge', table_id, 1);
|
||||
|
||||
|
||||
connection conn1;
|
||||
let $__tablet_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tablet_id from oceanbase.__all_tablet_to_ls where table_id = $__table_id__, tablet_id, 1);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
#connection conn1;
|
||||
#let $count = query_get_value(select count(1) as c from oceanbase.__all_virtual_table_mgr where tablet_id = $__tablet_id__ and tenant_id = $__tenant_id__ and table_type = 12 group by svr_port, c, 1);
|
||||
#echo $count;
|
||||
|
||||
connection conn1;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
|
||||
insert into test_uncommitted_trx_minor_merge values (2,2);
|
||||
# dirty trans, but committed when minor merge
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge values (3,3);
|
||||
update test_uncommitted_trx_minor_merge set c2 = 10 where c1 = 1;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
|
||||
let $count = query_get_value(select count(1) as c from oceanbase.__all_virtual_table_mgr where tablet_id = $__tablet_id__ and tenant_id = $__tenant_id__ and table_type = 12 and size > 0 group by svr_port, c, 1);
|
||||
echo $count;
|
||||
|
||||
connection conn1;
|
||||
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge values (4,4);
|
||||
|
||||
# this minor sstable should be removed after major merge
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
let $__freeze_tenant_name__ = 'mysql'
|
||||
--source mysql_test/include/major_freeze_tenant_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
|
||||
# first minor freeze with dirty trans
|
||||
# then minor freeze an empty memtable, but the corresponding minor sstable should contain data from last complement minor sstable
|
||||
connection conn1;
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge values (5,5);
|
||||
update test_uncommitted_trx_minor_merge set c2 = 100 where c1 = 2;
|
||||
alter system set undo_retention = 0;
|
||||
sleep 5;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
|
||||
connection conn0;
|
||||
#let $count = query_get_value(select count(1) as c from oceanbase.__all_virtual_table_mgr where tablet_id = $__tablet_id__ and tenant_id = $__tenant_id__ and table_type = 12 and size > 0 group by svr_port order by c desc limit 1, c, 1);
|
||||
# should be 1
|
||||
#echo $count;
|
||||
#eval select * from oceanbase.__all_virtual_table_mgr where tablet_id = $__tablet_id__ and tenant_id = $__tenant_id__;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_uncommitted_trx_minor_merge;
|
||||
alter system set undo_retention = 1800;
|
||||
drop table test_uncommitted_trx_minor_merge;
|
||||
@ -0,0 +1,56 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn3,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_get_uncommitted_row_with_fuse_row_t;
|
||||
--enable_warnings
|
||||
|
||||
create table test_get_uncommitted_row_with_fuse_row_t(a int primary key, b int, unique key u_idx(b));
|
||||
let $__freeze_table_name__ = 'test_get_uncommitted_row_with_fuse_row_t';
|
||||
|
||||
insert into test_get_uncommitted_row_with_fuse_row_t (a, b) values (1, 10), (2, 20), (3, 30);
|
||||
sleep 5;
|
||||
|
||||
begin;
|
||||
select * from test_get_uncommitted_row_with_fuse_row_t where a = 2 for update;
|
||||
update test_get_uncommitted_row_with_fuse_row_t set b = b + 1 where a = 2;
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_get_uncommitted_row_with_fuse_row_t', table_id, 1);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
--error 1062
|
||||
update test_get_uncommitted_row_with_fuse_row_t set b = 30 where a = 2;
|
||||
|
||||
connection conn2;
|
||||
select * from test_get_uncommitted_row_with_fuse_row_t where a = 2;
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
connection conn3;
|
||||
select * from test_get_uncommitted_row_with_fuse_row_t where a = 2;
|
||||
|
||||
|
||||
drop table test_get_uncommitted_row_with_fuse_row_t;
|
||||
@ -0,0 +1,78 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试查询sstable上未提交的数据
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = 1 * 1000 * 1000;
|
||||
eval set SESSION ob_trx_timeout = 1 * 1000 * 1000;
|
||||
eval set SESSION ob_trx_idle_timeout = 1 * 1000 * 1000;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_lock_row_in_minor_t;
|
||||
--enable_warnings
|
||||
|
||||
create table test_lock_row_in_minor_t(a int primary key, b int);
|
||||
let $__freeze_table_name__ = 'test_lock_row_in_minor_t';
|
||||
insert into test_lock_row_in_minor_t value(1, 1);
|
||||
alter system set minor_compact_trigger = 10;
|
||||
|
||||
# 测试普通标记脏事务
|
||||
connection conn1;
|
||||
begin;
|
||||
select * from test_lock_row_in_minor_t where a = 1 for update;
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= 'test_lock_row_in_minor_t', tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_lock_row_in_minor_t', table_id, 1);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
insert into test_lock_row_in_minor_t value(2, 2);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务更新sstable未提交数据
|
||||
--error 1205
|
||||
update test_lock_row_in_minor_t set b = 10 where a = 1;
|
||||
select * from test_lock_row_in_minor_t;
|
||||
|
||||
connection conn1;
|
||||
#同一事务更新sstable未提交数据
|
||||
update test_lock_row_in_minor_t set b = 10 where a = 1;
|
||||
|
||||
select * from test_lock_row_in_minor_t;
|
||||
|
||||
commit;
|
||||
#查sstable未提交数据,但事务已提交
|
||||
update test_lock_row_in_minor_t set b = 100 where a = 1;
|
||||
select * from test_lock_row_in_minor_t;
|
||||
|
||||
connection conn2;
|
||||
begin;
|
||||
update test_lock_row_in_minor_t set b = 200 where a = 1;
|
||||
select * from test_lock_row_in_minor_t;
|
||||
|
||||
drop table test_lock_row_in_minor_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,69 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试查询sstable上未提交的数据
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn0;
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_lock_uncommitted_data_t;
|
||||
--enable_warnings
|
||||
|
||||
create table test_lock_uncommitted_data_t(a int primary key, b int);
|
||||
let $__freeze_table_name__ = 'test_lock_uncommitted_data_t';
|
||||
|
||||
# 测试普通标记脏事务
|
||||
begin;
|
||||
insert into test_lock_uncommitted_data_t value(1, 1);
|
||||
insert into test_lock_uncommitted_data_t value(2, 2);
|
||||
insert into test_lock_uncommitted_data_t value(3, 3);
|
||||
insert into test_lock_uncommitted_data_t value(4, 4);
|
||||
insert into test_lock_uncommitted_data_t value(5, 5);
|
||||
insert into test_lock_uncommitted_data_t value(6, 6);
|
||||
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_lock_uncommitted_data_t', table_id, 1);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务更新sstable未提交数据
|
||||
update test_lock_uncommitted_data_t set b = 10 where a = 3;
|
||||
select * from test_lock_uncommitted_data_t;
|
||||
|
||||
connection conn1;
|
||||
#同一事务更新sstable未提交数据
|
||||
update test_lock_uncommitted_data_t set b = 10 where a = 3;
|
||||
|
||||
select * from test_lock_uncommitted_data_t;
|
||||
|
||||
commit;
|
||||
#查sstable未提交数据,但事务已提交
|
||||
update test_lock_uncommitted_data_t set b = 100 where a = 3;
|
||||
|
||||
connection conn2;
|
||||
begin;
|
||||
update test_lock_uncommitted_data_t set b = 200 where a = 3;
|
||||
|
||||
drop table test_lock_uncommitted_data_t;
|
||||
@ -0,0 +1,67 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在Mini Merge时出现连续两行的sql_sequence相等
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists same_sql_sequence;
|
||||
--enable_warnings
|
||||
|
||||
#建表
|
||||
create table same_sql_sequence(num int primary key, str varchar(50), tag int);
|
||||
create index index_num_tag on same_sql_sequence(tag);
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
|
||||
connection conn1;
|
||||
#事务开始 插入数据
|
||||
begin;
|
||||
--disable_query_log
|
||||
|
||||
let $i=0;
|
||||
while($i < 3)
|
||||
{
|
||||
eval insert into same_sql_sequence values($i + 1000, 'Hello OceanBase & Happy New Year', 0);
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
update same_sql_sequence set tag = 0, str = 'Hello OceanBase';
|
||||
sleep 10;
|
||||
|
||||
# test minor merge
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
select /*+ index(same_sql_sequence index_num_tag) */ *from same_sql_sequence where tag = 0;
|
||||
commit;
|
||||
|
||||
drop table same_sql_sequence;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,110 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下,含多次dml操作下,多次minor merge的正确性
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 600 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
drop table if exists test_mix_dml_table;
|
||||
--enable_warnings
|
||||
create table test_mix_dml_table(i1 int, v2 varchar(80), i3 char(20), i4 float, d4 datetime(6),i5 decimal(5,3), primary key(i1));
|
||||
let $__freeze_table_name__ = 'test_mix_dml_table';
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= 'test_mix_dml_table', tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_mix_dml_table', table_id, 1);
|
||||
|
||||
connection conn1;
|
||||
begin;
|
||||
--disable_query_log
|
||||
let $cnt=2000;
|
||||
while ($cnt)
|
||||
{
|
||||
eval insert into test_mix_dml_table values($cnt, 'now, come on', 'wukalaka bianshen', 25 * $cnt, '2014-02-04 12:00:00', -2.232);
|
||||
dec $cnt;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
update test_mix_dml_table set v2 = 'QQQQQQQQQQQQQQQQQQQQQQQQQQ';
|
||||
select count(*) from test_mix_dml_table where v2 = 'QQQQQQQQQQQQQQQQQQQQQQQQQQ';
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn2;
|
||||
#BU同一事务查询sstable未提交数据
|
||||
select * from test_mix_dml_table;
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
delete from test_mix_dml_table where i1 % 2 = 0;
|
||||
--enable_query_log
|
||||
|
||||
# test mini minor merge
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务查询sstable未提交数据
|
||||
select * from test_mix_dml_table;
|
||||
|
||||
connection conn1;
|
||||
#同一事务查询sstable未提交数据
|
||||
let $cnt = 5;
|
||||
while ($cnt)
|
||||
{
|
||||
eval select count(*) from test_mix_dml_table;
|
||||
dec $cnt;
|
||||
}
|
||||
|
||||
--disable_query_log
|
||||
let $cnt2 = 3;
|
||||
while ($cnt2)
|
||||
{
|
||||
connection conn1;
|
||||
eval update test_mix_dml_table set i4 = 2 * i4;
|
||||
dec $cnt2;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
connection conn2;
|
||||
eval select count(*) from test_mix_dml_table where i4 = 25 * i1 * power(2, 3) and v2 != 'QQQQQQQQQQQQQQQQQQQQQQQQQQ';
|
||||
--disable_query_log
|
||||
drop table test_mix_dml_table;
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,67 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试查询sstable上未提交的数据 multiget
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_multi_get_uncommitted_row_t;
|
||||
--enable_warnings
|
||||
|
||||
create table test_multi_get_uncommitted_row_t(a int primary key, b int, key ib(b));
|
||||
let $__freeze_table_name__ = 'test_multi_get_uncommitted_row_t';
|
||||
|
||||
# 测试普通标记脏事务
|
||||
begin;
|
||||
insert into test_multi_get_uncommitted_row_t value(1, 1);
|
||||
insert into test_multi_get_uncommitted_row_t value(2, 2);
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_multi_get_uncommitted_row_t', table_id, 1);
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务查询sstable未提交数据
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
|
||||
|
||||
connection conn1;
|
||||
#同一事务查询sstable未提交数据
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1, 2);
|
||||
|
||||
# 未提交的事务不能进fuse row cache
|
||||
connection conn2;
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
|
||||
connection conn1;
|
||||
update test_multi_get_uncommitted_row_t set b = 10 where a = 1;
|
||||
|
||||
commit;
|
||||
#查sstable未提交数据,但事务已提交
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
|
||||
connection conn2;
|
||||
|
||||
select * from test_multi_get_uncommitted_row_t where a in (1,2);
|
||||
|
||||
drop table test_multi_get_uncommitted_row_t;
|
||||
@ -0,0 +1,107 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下,多次minor merge的正确性
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 600 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_multi_minor_merge_t;
|
||||
--enable_warnings
|
||||
|
||||
create table test_multi_minor_merge_t(num int, str varchar(50), tag int);
|
||||
let $__freeze_table_name__ = 'test_multi_minor_merge_t';
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
|
||||
connection conn1;
|
||||
begin;
|
||||
let $_i_ = 200;
|
||||
while ($_i_ > 120)
|
||||
{
|
||||
eval insert into test_multi_minor_merge_t values($_i_, 'Hello OceanBase & Happy New Year', 1);
|
||||
dec $_i_;
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
while ($_i_ > 80)
|
||||
{
|
||||
eval insert into test_multi_minor_merge_t values($_i_, 'Hello OceanBase & Happy New Year', 1);
|
||||
dec $_i_;
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
while ($_i_ > 40)
|
||||
{
|
||||
eval insert into test_multi_minor_merge_t values($_i_, 'Hello OceanBase & Happy New Year', 1);
|
||||
dec $_i_;
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务查询sstable未提交数据
|
||||
select * from test_multi_minor_merge_t;
|
||||
|
||||
connection conn1;
|
||||
#同一事务查询sstable未提交数据
|
||||
select * from test_multi_minor_merge_t where num > 190;
|
||||
|
||||
connection conn1;
|
||||
while ($_i_ > 0)
|
||||
{
|
||||
eval insert into test_multi_minor_merge_t values($_i_, 'Hello OceanBase & Happy New Year', 1);
|
||||
dec $_i_;
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
#查sstable未提交数据,但事务已提交
|
||||
select * from test_multi_minor_merge_t where num > 190;
|
||||
|
||||
connection conn2;
|
||||
select count(*) from test_multi_minor_merge_t;
|
||||
|
||||
drop table test_multi_minor_merge_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,58 @@
|
||||
# owner: yanyuan.cxf
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试查询sstable上未提交的数据
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1(a int);
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
|
||||
connection conn1;
|
||||
# 测试普通标记脏事务
|
||||
begin;
|
||||
insert into t1 value(1);
|
||||
insert into t1 value(2);
|
||||
insert into t1 value(3);
|
||||
insert into t1 value(4);
|
||||
insert into t1 value(5);
|
||||
insert into t1 value(6);
|
||||
|
||||
|
||||
connection conn0;
|
||||
set ob_query_timeout=100000000;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务查询sstable未提交数据
|
||||
select * from t1;
|
||||
|
||||
|
||||
connection conn1;
|
||||
#同一事务查询sstable未提交数据
|
||||
select * from t1;
|
||||
|
||||
commit;
|
||||
#查sstable未提交数据,但事务已提交
|
||||
select * from t1;
|
||||
|
||||
connection conn2;
|
||||
|
||||
select * from t1;
|
||||
|
||||
drop table t1;
|
||||
@ -0,0 +1,121 @@
|
||||
# owner: yanyuan.cxf
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试查询sstable上未提交的数据
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists query_uncommitted_data2;
|
||||
--enable_warnings
|
||||
|
||||
create table query_uncommitted_data2(id int primary key, k int);
|
||||
|
||||
# 测试普通标记脏事务
|
||||
insert into query_uncommitted_data2 value(1,1);
|
||||
insert into query_uncommitted_data2 value(2,2);
|
||||
begin;
|
||||
insert into query_uncommitted_data2 value(3,3);
|
||||
insert into query_uncommitted_data2 value(4,4);
|
||||
insert into query_uncommitted_data2 value(5,5);
|
||||
|
||||
select * from query_uncommitted_data2;
|
||||
|
||||
select * from query_uncommitted_data2 where id=3;
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'query_uncommitted_data2', table_id, 1);
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
|
||||
connection conn2;
|
||||
select * from query_uncommitted_data2;
|
||||
select * from query_uncommitted_data2 where id=1;
|
||||
select * from query_uncommitted_data2 where id=3;
|
||||
|
||||
connection conn1;
|
||||
select * from query_uncommitted_data2 where id in (1,3);
|
||||
|
||||
connection conn0;
|
||||
let $i=300;
|
||||
while ($i > 0)
|
||||
{
|
||||
sleep 1;
|
||||
dec $i;
|
||||
let $memtable_count = query_get_value(select count(1) as c from oceanbase.__all_virtual_memstore_info where tablet_id in (select tablet_id from __all_virtual_tablet_to_ls where table_id = $__table_id__) and is_active = 'NO', c, 1);
|
||||
if ($memtable_count == 0)
|
||||
{
|
||||
let $i = -5;
|
||||
}
|
||||
}
|
||||
|
||||
if ($i != -5)
|
||||
{
|
||||
--echo mini merge failed
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
#查sstable未提交数据,但事务已提交
|
||||
select * from query_uncommitted_data2 where id=5;
|
||||
select * from query_uncommitted_data2;
|
||||
|
||||
connection conn2;
|
||||
select * from query_uncommitted_data2 where id=5;
|
||||
select * from query_uncommitted_data2;
|
||||
--error 1062
|
||||
insert into query_uncommitted_data2 values(5,5);
|
||||
|
||||
connection conn1;
|
||||
begin;
|
||||
insert into query_uncommitted_data2 values(6,6);
|
||||
update query_uncommitted_data2 set k=10 where id=5;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
let $i=300;
|
||||
while ($i > 0)
|
||||
{
|
||||
sleep 1;
|
||||
dec $i;
|
||||
let $memtable_count = query_get_value(select count(1) as c from oceanbase.__all_virtual_memstore_info where tablet_id in (select tablet_id from __all_virtual_tablet_to_ls where table_id = $__table_id__) and is_active = 'NO', c, 1);
|
||||
if ($memtable_count == 0)
|
||||
{
|
||||
let $i = -5;
|
||||
}
|
||||
}
|
||||
|
||||
if ($i != -5)
|
||||
{
|
||||
--echo mini merge failed
|
||||
}
|
||||
|
||||
connection conn2;
|
||||
set ob_query_timeout = 1000000;
|
||||
set ob_trx_timeout = 1000000;
|
||||
--error 1205
|
||||
insert into query_uncommitted_data2 values (6, 60);
|
||||
update query_uncommitted_data2 set k=10 where id=6;
|
||||
--error 1205
|
||||
update query_uncommitted_data2 set k=10 where id=5;
|
||||
select * from query_uncommitted_data2;
|
||||
|
||||
connection conn1;
|
||||
--error 1062
|
||||
insert into query_uncommitted_data2 values(6,6);
|
||||
select * from query_uncommitted_data2;
|
||||
commit;
|
||||
select * from query_uncommitted_data2;
|
||||
drop table query_uncommitted_data2;
|
||||
@ -0,0 +1,85 @@
|
||||
# owner: chaser.ch
|
||||
# owner group: storage
|
||||
# description: test if dirty macro block will be rewrited when no trx is terminated
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_uncommitted_trx_minor_merge;
|
||||
--enable_warnings
|
||||
|
||||
create table test_uncommitted_trx_minor_merge(c1 int primary key, c2 int, c3 varchar(2048)) compression "none";
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= 'test_uncommitted_trx_minor_merge', tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_uncommitted_trx_minor_merge', table_id, 1);
|
||||
|
||||
# prepare data, insert rows more than one macro
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
connection conn1;
|
||||
let $i=3000;
|
||||
begin;
|
||||
while ($i > 0)
|
||||
{
|
||||
eval insert into test_uncommitted_trx_minor_merge values ($i,$i,repeat('a', 2047));
|
||||
dec $i;
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
insert into test_uncommitted_trx_minor_merge values (3001, 3001, "aaaa");
|
||||
|
||||
connection conn1;
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
--enable_query_log
|
||||
--enable_result_log
|
||||
|
||||
connection conn1;
|
||||
insert into test_uncommitted_trx_minor_merge values (3002, 3002, "aaaa");
|
||||
|
||||
|
||||
connection conn1;
|
||||
insert into test_uncommitted_trx_minor_merge values (4000,4000,"a");
|
||||
|
||||
connection conn1;
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn1;
|
||||
select count(1) from test_uncommitted_trx_minor_merge;
|
||||
|
||||
connection conn0;
|
||||
let $use_old=query_get_value(select multiplexed_macro_block_count from oceanbase.__all_virtual_tablet_compaction_history where tablet_id in (select tablet_id from __all_virtual_tablet_to_ls where table_id = $__table_id__ and tenant_id=$__tenant_id__) order by finish_time desc limit 1, multiplexed_macro_block_count, 1);
|
||||
if ($use_old > 0)
|
||||
{
|
||||
--echo should not reuse macro
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
select count(1) from test_uncommitted_trx_minor_merge;
|
||||
|
||||
drop table test_uncommitted_trx_minor_merge;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,81 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn0;
|
||||
alter system set _fast_commit_callback_count = 0;
|
||||
alter system set _private_buffer_size = '1B';
|
||||
|
||||
let $__timeout_def__ = 600 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_rollback_and_major_t;
|
||||
--enable_warnings
|
||||
create table test_rollback_and_major_t(row_key int primary key, row_value int);
|
||||
let $__freeze_table_name__ = 'test_rollback_and_major_t';
|
||||
|
||||
|
||||
connection conn1;
|
||||
eval insert into test_rollback_and_major_t values(1,1);
|
||||
begin;
|
||||
|
||||
connection conn2;
|
||||
begin;
|
||||
|
||||
let $__i__ = 0;
|
||||
while ($__i__ < 200)
|
||||
{
|
||||
inc $__i__;
|
||||
inc $__i__;
|
||||
|
||||
# 分别修改key为1的行并回滚
|
||||
connection conn1;
|
||||
savepoint x;
|
||||
eval update test_rollback_and_major_t set row_value = $__i__ * 123 where row_key = 1;
|
||||
eval insert into test_rollback_and_major_t values($__i__ + 3000, $__i__);
|
||||
rollback to savepoint x;
|
||||
eval insert into test_rollback_and_major_t values($__i__ * 10, 1);
|
||||
select count(*) from test_rollback_and_major_t;
|
||||
|
||||
connection conn2;
|
||||
savepoint x;
|
||||
eval update test_rollback_and_major_t set row_value = $__i__ * 321 where row_key = 1;
|
||||
eval insert into test_rollback_and_major_t values($__i__ + 3000, $__i__);
|
||||
rollback to savepoint x;
|
||||
eval insert into test_rollback_and_major_t values($__i__ * 10 + 5, 1);
|
||||
select count(*) from test_rollback_and_major_t;
|
||||
}
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
select * from test_rollback_and_major_t;
|
||||
|
||||
connection conn2;
|
||||
commit;
|
||||
select * from test_rollback_and_major_t;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn0;
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
let $__freeze_tenant_name__ = 'mysql';
|
||||
--source mysql_test/include/major_freeze_tenant_and_wait_done.inc
|
||||
|
||||
# reset config
|
||||
connection conn0;
|
||||
alter system set _private_buffer_size = '16K';
|
||||
alter system set _fast_commit_callback_count = 10000;
|
||||
@ -0,0 +1,124 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下,with savepoint
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
let $__timeout_def__ = 60 * 1000 * 1000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn1;
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
eval set SESSION ob_query_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_timeout = $__timeout_def__;
|
||||
eval set SESSION ob_trx_idle_timeout = $__timeout_def__;
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_rollback_sql_sequence_t;
|
||||
--enable_warnings
|
||||
|
||||
#建表
|
||||
create table test_rollback_sql_sequence_t(num int, str varchar(50), tag int);
|
||||
let $__freeze_table_name__ = 'test_rollback_sql_sequence_t';
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
|
||||
connection conn1;
|
||||
#事务开始 插入数据
|
||||
begin;
|
||||
insert into test_rollback_sql_sequence_t value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_rollback_sql_sequence_t value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
|
||||
connection conn1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
#create Savepoint p1
|
||||
SAVEPOINT p1;
|
||||
|
||||
insert into test_rollback_sql_sequence_t value(5, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(4, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(3, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(2, 'Hello OceanBase & Happy New Year', 2);
|
||||
insert into test_rollback_sql_sequence_t value(1, 'Hello OceanBase & Happy New Year', 2);
|
||||
|
||||
#create Savepoint p2
|
||||
connection conn1;
|
||||
SAVEPOINT p2;
|
||||
update test_rollback_sql_sequence_t set tag = (num + tag) * 10;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
|
||||
ROLLBACK TO SAVEPOINT p2;
|
||||
|
||||
connection conn1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
|
||||
connection conn1;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
|
||||
#不同事务查询sstable未提交事务(COMMIT)
|
||||
connection conn2;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
#同一事务查sstable未提交数据(COMMIT)
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
|
||||
#不同事务查询sstable未提交事务(COMMIT)
|
||||
connection conn2;
|
||||
select * from test_rollback_sql_sequence_t;
|
||||
|
||||
drop table test_rollback_sql_sequence_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,143 @@
|
||||
# owner: lixia.yq
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下的savepoint回滚功能
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#建表
|
||||
create table t1(c1 int primary key, c2 varchar(50), c3 int, c4 datetime(6), c5 datetime(6)) table_mode = 'queuing';
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
|
||||
connection conn1;
|
||||
#事务开始 插入数据
|
||||
begin;
|
||||
|
||||
#create Savepoint
|
||||
SAVEPOINT p0;
|
||||
|
||||
#insert 30 rows
|
||||
--disable_query_log
|
||||
|
||||
let $i=0;
|
||||
while($i < 30)
|
||||
{
|
||||
eval insert into t1 values($i + 1000, 'Hello OceanBase & Happy New Year', $i, '2012-10-10 12:00:00','2012-10-10');
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#create Savepoint
|
||||
SAVEPOINT p1;
|
||||
|
||||
insert into t1 value(5, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(4, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(3, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(2, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(1, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
#create Savepoint
|
||||
connection conn1;
|
||||
SAVEPOINT p2;
|
||||
|
||||
update t1 set c3 = c1;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
#create Savepoint
|
||||
connection conn1;
|
||||
SAVEPOINT p3;
|
||||
|
||||
update t1 set c2 = 'rollback rooooooooll';
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#should be 0
|
||||
select count(*) from t1 where c2 like '%oceanbase%';
|
||||
|
||||
ROLLBACK TO SAVEPOINT p3;
|
||||
|
||||
#should be 35
|
||||
select count(*) from t1 where c2 like '%oceanbase%';
|
||||
|
||||
connection conn1;
|
||||
#should be 35
|
||||
select count(*) from t1 where c3 = c1;
|
||||
|
||||
ROLLBACK TO SAVEPOINT p2;
|
||||
|
||||
#should be 1(2, 2)
|
||||
select count(*) from t1 where c3 = c1;
|
||||
|
||||
connection conn1;
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
|
||||
#should be 30
|
||||
select count(*) from t1;
|
||||
|
||||
connection conn1;
|
||||
ROLLBACK TO SAVEPOINT p0;
|
||||
|
||||
#should be 0
|
||||
select count(*) from t1;
|
||||
|
||||
connection conn2;
|
||||
select * from t1;
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn2;
|
||||
select * from t1;
|
||||
|
||||
connection conn1;
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,136 @@
|
||||
# owner: lixia.yq
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下的savepoint回滚测试(多次rollback到同一个savepoint)
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#建表
|
||||
create table t1(c1 int primary key, c2 varchar(50), c3 int, c4 datetime(6), c5 datetime(6)) table_mode = 'queuing';
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
|
||||
connection conn1;
|
||||
#事务开始 插入数据
|
||||
begin;
|
||||
|
||||
#insert 30 rows
|
||||
--disable_query_log
|
||||
|
||||
let $i=0;
|
||||
while($i < 30)
|
||||
{
|
||||
eval insert into t1 values($i + 1000, 'Hello OceanBase & Happy New Year', $i, '2012-10-10 12:00:00','2012-10-10');
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#create Savepoint
|
||||
SAVEPOINT p1;
|
||||
|
||||
insert into t1 value(5, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(4, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(3, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(2, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
insert into t1 value(1, 'Hello OceanBase & Happy New Year', 2, '2012-10-10 12:00:00','2012-10-10');
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#should be 35
|
||||
select count(*) from t1;
|
||||
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
|
||||
connection conn1;
|
||||
#should be 0
|
||||
select count(*) from t1 where c1 < 1000;
|
||||
|
||||
connection conn1;
|
||||
#insert 10 rows
|
||||
--disable_query_log
|
||||
|
||||
let $i=0;
|
||||
while($i < 10)
|
||||
{
|
||||
eval insert into t1 values($i + 2000, 'Hello OceanBase & Happy New Year', $i, '2012-10-10 12:00:00','2012-10-10');
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#should be 40
|
||||
select count(*) from t1;
|
||||
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
#should be 30
|
||||
select count(*) from t1;
|
||||
|
||||
connection conn1;
|
||||
#insert 10 rows
|
||||
--disable_query_log
|
||||
|
||||
let $i=0;
|
||||
while($i < 10)
|
||||
{
|
||||
eval insert into t1 values($i + 3000, 'Hello OceanBase & Happy New Year', $i, '2012-10-10 12:00:00','2012-10-10');
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
update t1 set c3 = c1 * c3;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#should be 40
|
||||
select count(*) from t1 where c3 % c1 = 0;
|
||||
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
|
||||
#should be 1(1000, 0)
|
||||
select count(*) from t1 where c3 % c1 = 0;
|
||||
|
||||
connection conn1;
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,128 @@
|
||||
# owner: lixia.yq
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下,with savepoint
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn0;
|
||||
alter system set syslog_io_bandwidth_limit = '100G';
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
#建表
|
||||
create table t1(num int, str varchar(2000), tag int);
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
connection conn1;
|
||||
insert into t1 values(1, repeat('Hello OceanBase', 50), 1);
|
||||
#事务开始 插入数据
|
||||
begin;
|
||||
connection conn1;
|
||||
#create Savepoint
|
||||
SAVEPOINT p1;
|
||||
--disable_query_log
|
||||
let $i=0;
|
||||
while($i < 3000)
|
||||
{
|
||||
eval update t1 set str = repeat('Hello OceanBase$i', 50) where num = 1;
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
connection conn2;
|
||||
--error 1205
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
connection conn2;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
update t1 set str = repeat('Hello OceanBase9', 50) where num = 1;
|
||||
#create Savepoint
|
||||
SAVEPOINT p2;
|
||||
--disable_query_log
|
||||
let $i=0;
|
||||
while($i < 3000)
|
||||
{
|
||||
eval update t1 set str = repeat('Hello OceanBase$i', 50) where num = 1;
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
connection conn2;
|
||||
--error 1205
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
ROLLBACK TO SAVEPOINT p2;
|
||||
connection conn2;
|
||||
--error 1205
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
commit;
|
||||
connection conn2;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
begin;
|
||||
--disable_query_log
|
||||
let $i=0;
|
||||
while($i < 3000)
|
||||
{
|
||||
eval update t1 set str = repeat('Hello OceanBase$i', 50) where num = 1;
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
connection conn2;
|
||||
--error 1205
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
rollback;
|
||||
connection conn2;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
begin;
|
||||
update t1 set str = repeat('Hello OceanBase0.', 50) where num = 1;
|
||||
connection conn2;
|
||||
--error 1205
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
connection conn2;
|
||||
--error 1205
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
connection conn1;
|
||||
commit;
|
||||
connection conn2;
|
||||
select * from t1 where num = 1 for update nowait;
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,122 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的Rollback
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn2;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_rollback_trans_t;
|
||||
--enable_warnings
|
||||
|
||||
#建表
|
||||
create table test_rollback_trans_t(num int, str varchar(50), tag int);
|
||||
let $__freeze_table_name__ = 'test_rollback_trans_t';
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= $__freeze_table_name__, table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
|
||||
|
||||
connection conn1;
|
||||
#事务开始 插入数据
|
||||
begin;
|
||||
let $_i_ = 1;
|
||||
while ($_i_ <= 20)
|
||||
{
|
||||
eval insert into test_rollback_trans_t value($_i_, 'Hello OceanBase & Happy New Year', 1);
|
||||
inc $_i_;
|
||||
}
|
||||
|
||||
connection conn2;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
let $_i_ = 21;
|
||||
while ($_i_ <= 40)
|
||||
{
|
||||
eval insert into test_rollback_trans_t value($_i_, 'Hello OceanBase & Happy New Year', 2);
|
||||
inc $_i_;
|
||||
}
|
||||
|
||||
update test_rollback_trans_t set tag = (num + tag) * 10;
|
||||
|
||||
#不同事务查询sstable未提交事务
|
||||
connection conn2;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
connection conn1;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
# test mini minor merge
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
ROLLBACK;
|
||||
|
||||
connection conn2;
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
#不同事务查询sstable未提交事务(ROLLBACK)
|
||||
connection conn2;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
#插入数据
|
||||
connection conn1;
|
||||
let $_i_ = 41;
|
||||
while ($_i_ <= 50)
|
||||
{
|
||||
eval insert into test_rollback_trans_t value($_i_, 'Hello OceanBase & Happy New Year', 2);
|
||||
inc $_i_;
|
||||
}
|
||||
|
||||
begin;
|
||||
update test_rollback_trans_t set tag = (num + tag) * 10;
|
||||
|
||||
#不同事务查询sstable
|
||||
connection conn2;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
#同一事务查询sstable(update)之后的
|
||||
connection conn1;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
ROLLBACK;
|
||||
|
||||
--source mysql_test/include/minor_freeze_tablet_and_wait_done.inc
|
||||
|
||||
connection conn1;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
connection conn2;
|
||||
select * from test_rollback_trans_t;
|
||||
|
||||
drop table test_rollback_trans_t;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,69 @@
|
||||
#owner : chaser.ch
|
||||
#owner group : storage
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1_fuse;
|
||||
--enable_warnings
|
||||
|
||||
create table t1_fuse(a int primary key, b int, c int);
|
||||
|
||||
let $cnt = 5;
|
||||
while ($cnt)
|
||||
{
|
||||
eval insert into t1_fuse values($cnt, 1, 1);
|
||||
dec $cnt;
|
||||
}
|
||||
|
||||
update t1_fuse set b = 2 where a = 2;
|
||||
update t1_fuse set b = 3 where a = 2;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
sleep 3;
|
||||
|
||||
connection conn1;
|
||||
select * from t1_fuse where a = 2;
|
||||
|
||||
set autocommit=0;
|
||||
begin;
|
||||
update t1_fuse set c = 2 where a = 2;
|
||||
sleep 1;
|
||||
select * from t1_fuse where a = 2;
|
||||
select * from t1_fuse where a = 2;
|
||||
update t1_fuse set c = 3 where a = 2;
|
||||
sleep 1;
|
||||
select * from t1_fuse where a = 2;
|
||||
select * from t1_fuse where a = 2;
|
||||
sleep 1;
|
||||
|
||||
connection conn2;
|
||||
select * from t1_fuse where a = 2;
|
||||
|
||||
connection conn1;
|
||||
rollback;
|
||||
select * from t1_fuse where a = 2;
|
||||
|
||||
connection conn2;
|
||||
select * from t1_fuse where a = 2;
|
||||
|
||||
select * from t1_fuse order by a asc;
|
||||
|
||||
drop table t1_fuse;
|
||||
@ -0,0 +1,94 @@
|
||||
# owner: chaser.ch
|
||||
# owner group: storage
|
||||
# description: 本case是为了测试查询sstable上未提交的数据 single_get
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_uncommitted_trx_minor_merge;
|
||||
--enable_warnings
|
||||
|
||||
create table test_uncommitted_trx_minor_merge(a int primary key, b int, key ib(b));
|
||||
|
||||
# 测试普通标记脏事务
|
||||
begin;
|
||||
insert into test_uncommitted_trx_minor_merge value(1, 1);
|
||||
insert into test_uncommitted_trx_minor_merge value(2, 2);
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_uncommitted_trx_minor_merge', table_id, 1);
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务查询sstable未提交数据
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
|
||||
|
||||
connection conn1;
|
||||
#同一事务查询sstable未提交数据
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
|
||||
# 未提交的事务不能进fuse row cache
|
||||
connection conn2;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
|
||||
connection conn1;
|
||||
update test_uncommitted_trx_minor_merge set b = 10 where a = 1;
|
||||
|
||||
commit;
|
||||
#查sstable未提交数据,但事务已提交
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 2;
|
||||
|
||||
connection conn2;
|
||||
|
||||
select * from test_uncommitted_trx_minor_merge where a = 1;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 2;
|
||||
|
||||
insert into test_uncommitted_trx_minor_merge values (3,3);
|
||||
begin;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3 for update;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
set ob_query_timeout = 1000000;
|
||||
set ob_trx_timeout = 1000000;
|
||||
--error 1205
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3 for update nowait;
|
||||
set ob_query_timeout = 1000000000000;
|
||||
set ob_trx_timeout = 1000000000000;
|
||||
|
||||
connection conn2;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3;
|
||||
update test_uncommitted_trx_minor_merge set b = 30 where a = 3;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn2;
|
||||
rollback;
|
||||
select * from test_uncommitted_trx_minor_merge where a = 3;
|
||||
|
||||
drop table test_uncommitted_trx_minor_merge;
|
||||
@ -0,0 +1,138 @@
|
||||
# owner: chaser.ch
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的BufMerge,含增/减列操作
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#建表
|
||||
create table t1(
|
||||
obschema_c_0_68XcHo tinyint(255) NOT NULL,
|
||||
obschema_c_1_lTMGZYJ varchar(200) NULL default NULL,
|
||||
obschema_c_2_ENEd tinyint(255) NULL,
|
||||
obschema_c_3_OpRK varbinary(255) NULL default NULL,
|
||||
obschema_c_4_fpdB float NOT NULL,
|
||||
obschema_c_5_Gq varbinary(255) NULL default NULL,
|
||||
obschema_c_6_u6dri varchar(150) NOT NULL default 'CDEFGHI01',
|
||||
obschema_c_7_XB decimal(20,12) NOT NULL default 0.20329070,
|
||||
obschema_c_8_7cq4kl double NULL default NULL,
|
||||
obschema_c_9_ywrfyF decimal(10,5) NOT NULL default 0.01001) table_mode='queuing';
|
||||
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
let $i=0;
|
||||
while($i < 30)
|
||||
{
|
||||
eval insert into t1 values($i, 'Hello OceanBase & Happy New Year1', $i, 9153608021209109295703075050360401, $i * 0.2,
|
||||
9153608021209109295703075050360401, 'Hello OceanBase & Happy New Year3', $i * 0.2, $i * 0.2, $i * 0.2);
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
let $i=30;
|
||||
while($i < 60)
|
||||
{
|
||||
eval insert into t1 values($i, 'Hello OceanBase & Happy New Year1', $i, 9153608021209109295703075050360401, $i * 0.2,
|
||||
9153608021209109295703075050360401, 'Hello OceanBase & Happy New Year3', $i * 0.2, $i * 0.2, $i * 0.2);
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
|
||||
connection conn0;
|
||||
alter system major freeze tenant = sys;
|
||||
alter system major freeze tenant = all_user;
|
||||
alter system major freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
connection conn1;
|
||||
alter table t1 add column obschema_c_10_Y decimal(25,10) NOT NULL default 0.20349070 FIRST ,
|
||||
add column obschema_c_11_z float NOT NULL default 0.123470 AFTER obschema_c_0_68XcHo,
|
||||
add column obschema_c_12_PzG varchar(20) NULL default 'aEFGHI01' BEFORE obschema_c_1_lTMGZYJ;
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
|
||||
let $i=60;
|
||||
while($i < 90)
|
||||
{
|
||||
eval insert into t1 values($i * 0.2, $i, $i * 0.2, 'Hello OceanBase', 'Hello OceanBase & Happy New Year1',
|
||||
$i, 9153608021209109295703075050360401, $i * 0.2,
|
||||
9153608021209109295703075050360401, 'Hello OceanBase & Happy New Year3', $i * 0.2, $i * 0.2, $i * 0.2);
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
alter table t1 drop column obschema_c_3_OpRK;
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
let $i=90;
|
||||
while($i < 120)
|
||||
{
|
||||
eval insert into t1 values($i * 0.2, $i % 10, $i * 0.2, 'Hello OceanBase', 'Hello OceanBase & Happy New Year1',
|
||||
$i % 10, $i * 0.2,
|
||||
9153608021209109295703075050360401, 'Hello OceanBase & Happy New Year3', $i * 0.2, $i * 0.2, $i * 0.2);
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
let $i=120;
|
||||
while($i < 150)
|
||||
{
|
||||
eval insert into t1 values($i * 0.2, $i % 10, $i * 0.2, 'Hello OceanBase', 'Hello OceanBase & Happy New Year1',
|
||||
$i % 10, $i * 0.2,
|
||||
9153608021209109295703075050360401, 'Hello OceanBase & Happy New Year3', $i * 0.2, $i * 0.2, $i * 0.2);
|
||||
inc $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
select * from t1 limit 1;
|
||||
select count(*) from t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
@ -0,0 +1,114 @@
|
||||
# owner: gengli.wzy
|
||||
# owner group: transaction
|
||||
# description: 本case是为了测试在含未提交事务的状态下,在执行update的操作下,多次minor merge的正确性
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 1000000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 10;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists test_update_uncommitted_data;
|
||||
--enable_warnings
|
||||
|
||||
#建表
|
||||
create table test_update_uncommitted_data(num int, str varchar(50), tag int);
|
||||
|
||||
connection conn0;
|
||||
let $__tenant_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ tenant_id from oceanbase.__all_virtual_table where table_name= 'test_update_uncommitted_data', tenant_id, 1);
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 'test_update_uncommitted_data', table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
|
||||
connection conn1;
|
||||
#事务开始 插入数据
|
||||
begin;
|
||||
insert into test_update_uncommitted_data value(100, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(99, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(98, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(97, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(96, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(95, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(94, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(93, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(92, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(91, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(90, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(89, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(88, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(87, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(86, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(85, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(84, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(83, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(82, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(81, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(80, 'Hello OceanBase & Happy New Year', 1);
|
||||
|
||||
connection conn1;
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#执行update操作
|
||||
update test_update_uncommitted_data set tag = num + tag where tag = 1;
|
||||
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
#再插入数据
|
||||
insert into test_update_uncommitted_data value(50, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(49, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(48, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(47, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(46, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(45, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(44, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(43, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(42, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(41, 'Hello OceanBase & Happy New Year', 1);
|
||||
insert into test_update_uncommitted_data value(40, 'Hello OceanBase & Happy New Year', 1);
|
||||
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
# test mini minor merge
|
||||
let $__now_time__ = query_get_value(select now() as c, c, 1);
|
||||
alter system set minor_compact_trigger = 1;
|
||||
--source mysql_test/include/wait_mini_minor_merge_for_table.inc
|
||||
|
||||
connection conn2;
|
||||
# 不同事务查询sstable未提交数据
|
||||
select * from test_update_uncommitted_data;
|
||||
|
||||
connection conn1;
|
||||
#同一事务查询sstable未提交数据
|
||||
select * from test_update_uncommitted_data;
|
||||
|
||||
connection conn1;
|
||||
update test_update_uncommitted_data set tag = num + tag where tag = 1;
|
||||
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
#同一事务查sstable未提交数据(COMMIT)
|
||||
select * from test_update_uncommitted_data;
|
||||
|
||||
#不同事务查询sstable未提交事务(COMMIT)
|
||||
connection conn2;
|
||||
select count(*) from test_update_uncommitted_data;
|
||||
|
||||
drop table test_update_uncommitted_data;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
@ -0,0 +1,92 @@
|
||||
# owner: lixia.yq
|
||||
# owner group: storage
|
||||
# description:This case is to test the correctness of the savepoint rollback in a table with index
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
alter system set minor_compact_trigger = 1;
|
||||
sleep 2;
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
connection conn1;
|
||||
create table t1(c1 int, c2 int, c3 varchar(100), v1 varchar(1000), v2 varchar(1000), r1 int, r2 int, primary key(c1, c2, c3));
|
||||
create index idx1 on t1(c1,c2,c3,r2,r1) storing(v1) LOCAL;
|
||||
|
||||
connection conn0;
|
||||
let $__table_id__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ table_id from oceanbase.__all_virtual_table where table_name= 't1', table_id, 1);
|
||||
let $__svr_cnt__=query_get_value(select /*+QUERY_TIMEOUT(10000000)*/ count(*) as c from oceanbase.__all_server, c, 1);
|
||||
connection conn1;
|
||||
#insert
|
||||
--disable_query_log
|
||||
|
||||
begin;
|
||||
insert into t1 values(1, 1, "c300000000000001", "v100000000000000000001", "v200000000000000000001", 1, 1);
|
||||
insert into t1 values(2, 2, "c300000000000002", "v100000000000000000002", "v200000000000000000002", 2, 2);
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
|
||||
connection conn1;
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
|
||||
update t1 set v1 = "11111111111" where c1 = 1 and c2 = 1;
|
||||
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
SAVEPOINT p1;
|
||||
|
||||
delete from t1 where c2 = 1;
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
|
||||
insert into t1(c1, c2, c3, v1) values(1, 1, "c300000000000001", "v19999999");
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
ROLLBACK TO SAVEPOINT p1;
|
||||
update t1 set r2 = 77 where c1 = 1 and c2 = 1;
|
||||
|
||||
connection conn0;
|
||||
alter system minor freeze tenant = sys;
|
||||
alter system minor freeze tenant = all_user;
|
||||
alter system minor freeze tenant = all_meta;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection conn1;
|
||||
commit;
|
||||
|
||||
select /*+ INDEX(t1 idx1)*/c1, c2, c3, r1, r2, v1 from t1;
|
||||
select * from t1;
|
||||
|
||||
drop table t1;
|
||||
alter system set minor_compact_trigger = 2;
|
||||
Reference in New Issue
Block a user