mark some file to been opensource for ce-farm

This commit is contained in:
niyuhang
2023-11-15 11:44:43 +00:00
committed by ob-robot
parent 4900683cff
commit c8ace58297
685 changed files with 1080566 additions and 111051 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;