polardbxengine/mysql-test/suite/innodb/t/dml_operations_temp_table_d...

81 lines
1.7 KiB
Plaintext

--source include/have_debug.inc
####################################################################
# TC to test temp-table DML optimization changes for correctness #
# Sceanrio covered: #
# 1. test insert/delete/update of big-rec (blob) #
####################################################################
#-------------------------------------------------------------------
#
# 1. test insert/delete/update of big-rec (blob) #
#
use test;
create temporary table t1
(i int, b mediumblob,
primary key pk(i), index sk(b(100))
) engine=innodb;
delimiter |;
create procedure populate_t1()
begin
declare i int default 1;
while (i <= 100) do
insert into t1 values (i, repeat(i,1000));
set i = i + 1;
end while;
end|
create procedure populate_t1_small()
begin
declare i int default 1;
while (i <= 8) do
insert into t1 values (i, repeat(i,1000));
set i = i + 1;
end while;
end|
delimiter ;|
#
begin;
select count(*) from t1;
call populate_t1();
select count(*) from t1;
delete from t1 where i < 10;
select count(*) from t1;
commit;
set global innodb_purge_stop_now=ON;
set global innodb_purge_run_now=ON;
--source include/wait_innodb_all_purged.inc
#
delete from t1 where i < 20;
select count(*) from t1;
#
begin;
call populate_t1_small();
select count(*) from t1;
rollback;
select count(*) from t1;
#
begin;
select count(*) from t1;
update t1 set b = repeat('a', 100) where i < 100;
select * from t1 limit 1;
select count(*) from t1;
rollback;
update t1 set b = repeat('a', 100) where i < 100;
select * from t1 limit 1;
#
truncate table t1;
select count(*) from t1;
#
drop table if exists t1;
drop procedure populate_t1;
drop procedure populate_t1_small;
#-------------------------------------------------------------------
#
# remove test-bed
#