Files
oceanbase/tools/deploy/mysql_test/t/bulk_insert.test
2023-11-15 11:44:44 +00:00

213 lines
10 KiB
Plaintext

#owner: chaser.ch
#group: storage2
#### bulk insert with space
--disable_warnings
drop table if exists t;
--enable_warnings
create table t (a char(10) not null);
insert into t values('b'),('b ');
select hex(a) from t;
insert into t values('b '),('b');
select hex(a) from t;
drop table t;
#
# prepare basic data for big table
#
--disable_warnings
drop table if exists test_bulk, test_bulk_prefix;
--enable_warnings
create table test_bulk(a int, b int, c int, d int, primary key(a, b)) row_format = redundant;
create table test_bulk_prefix(a int, b int, c int, d int, primary key(a, b, c, d)) row_format = redundant;
--let $insert_sql_prefix=insert into test_bulk values
--let $value=(0,0,0,0)
--let $loop=600
while($loop > 0)
{
--let $value=$value,($loop,11,1,1)
dec $loop;
}
--let $insert_sql_prefix=$insert_sql_prefix$value
--let $loop=100
while($loop > 0)
{
eval insert into test_bulk values ($loop,1,1,1), ($loop,2,1,1), ($loop,3,1,1), ($loop,4,1,1), ($loop,5,1,1), ($loop,6,1,1), ($loop,7,1,1), ($loop,8,1,1), ($loop,9,1,1), ($loop,10,1,1);
eval insert into test_bulk_prefix values ($loop,1,1,1), ($loop,2,2,2), ($loop,3,3,3), ($loop,4,4,4), ($loop,5,5,5), ($loop,6,6,6), ($loop,7,7,7), ($loop,8,8,8), ($loop,9,9,9), ($loop,10,10,10);
dec $loop;
}
--let $loop=9
# memtable values duplicate
--error 1062
eval insert into test_bulk values ($loop,$loop,1,1);
--error 1062
eval insert into test_bulk values ($loop,11,1,1),($loop,$loop,1,1);
--error 1062
eval insert into test_bulk values ($loop,11,1,1), ($loop,12,1,1), ($loop,13,1,1), ($loop,14,1,1), ($loop,15,1,1), ($loop,16,1,1), ($loop,17,1,1), ($loop,18,1,1), ($loop,19,1,1), ($loop,$loop,1,1);
# prefix exist with memtable duplicate
--error 1062
eval insert into test_bulk_prefix values ($loop, $loop, $loop, 1),($loop, $loop, $loop, 2),($loop, $loop, $loop, 3),($loop, $loop, $loop, 4),($loop, $loop, $loop, 5),($loop, $loop, $loop, 6),($loop, $loop, $loop, 7),($loop, $loop, $loop, 8),($loop, $loop, $loop, 9),($loop, $loop, $loop, 10);
# major freeze for baseline data
alter system major freeze;
--source mysql_test/include/wait_daily_merge.inc
# bulk insert with error
--let $loop=5
while($loop > 0)
{
# values duplicate
--error 1062
eval insert into test_bulk values ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1);
# major values duplicate
--error 1062
eval insert into test_bulk values ($loop,$loop,1,1);
--error 1062
eval insert into test_bulk values ($loop,11,1,1),($loop,$loop,1,1);
--error 1062
eval insert into test_bulk values ($loop,11,1,1), ($loop,12,1,1), ($loop,13,1,1), ($loop,14,1,1), ($loop,15,1,1), ($loop,16,1,1), ($loop,17,1,1), ($loop,18,1,1), ($loop,19,1,1), ($loop,$loop,1,1);
# prefix exist with duplicate
--error 1062
eval insert into test_bulk_prefix values ($loop, $loop, $loop, 1),($loop, $loop, $loop, 2),($loop, $loop, $loop, 3),($loop, $loop, $loop, 4),($loop, $loop, $loop, 5),($loop, $loop, $loop, 6),($loop, $loop, $loop, 7),($loop, $loop, $loop, 8),($loop, $loop, $loop, 9),($loop, $loop, $loop, 10);
dec $loop;
}
--let $insert_sql=$insert_sql_prefix,(50,1,1,1)
--disable_query_log
--error 1062
eval $insert_sql;
--enable_query_log
# prepare data for minor merge
--let $loop=150
while($loop > 130)
{
eval insert into test_bulk values ($loop,1,1,1), ($loop,2,1,1), ($loop,3,1,1), ($loop,4,1,1), ($loop,5,1,1), ($loop,6,1,1), ($loop,7,1,1), ($loop,8,1,1), ($loop,9,1,1), ($loop,10,1,1);
# prefix not exist
eval insert into test_bulk_prefix values ($loop, $loop, $loop, 1),($loop, $loop, $loop, 2),($loop, $loop, $loop, 3),($loop, $loop, $loop, 4),($loop, $loop, $loop, 5),($loop, $loop, $loop, 6),($loop, $loop, $loop, 7),($loop, $loop, $loop, 8),($loop, $loop, $loop, 9),($loop, $loop, $loop, 10);
dec $loop;
}
set ob_query_timeout=100000000;
alter system minor freeze;
--source mysql_test/include/wait_minor_merge.inc
# bulk insert with error
--let $loop=140
--let $loop2=10
while($loop > 135)
{
# values duplicate
--error 1062
eval insert into test_bulk values ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1);
# minor values duplicate
--error 1062
eval insert into test_bulk values ($loop,11,1,1), ($loop,12,1,1), ($loop,13,1,1), ($loop,14,1,1), ($loop,15,1,1), ($loop,16,1,1), ($loop,17,1,1), ($loop,18,1,1), ($loop,19,1,1), ($loop,$loop2,1,1);
# major values duplicate
--error 1062
eval insert into test_bulk values ($loop2,11,1,1), ($loop2,12,1,1), ($loop2,13,1,1), ($loop2,14,1,1), ($loop2,15,1,1), ($loop2,$loop2,1,1), ($loop2,17,1,1), ($loop2,18,1,1), ($loop2,19,1,1), ($loop2,20,1,1);
# prefix exist with duplicate
--error 1062
eval insert into test_bulk_prefix values ($loop, $loop, $loop, 1),($loop, $loop, $loop, 2),($loop, $loop, $loop, 3),($loop, $loop, $loop, 4),($loop, $loop, $loop, 5),($loop, $loop, $loop, 6),($loop, $loop, $loop, 7),($loop, $loop, $loop, 8),($loop, $loop, $loop, 9),($loop, $loop, $loop, 10);
dec $loop;
dec $loop2;
}
--let $insert_sql=$insert_sql_prefix,(140,1,1,1)
--disable_query_log
--error 1062
eval $insert_sql;
--enable_query_log
# prepare data for minor merge
--let $loop=200
while($loop > 180)
{
eval insert into test_bulk values ($loop,1,1,1), ($loop,2,1,1), ($loop,3,1,1), ($loop,4,1,1), ($loop,5,1,1), ($loop,6,1,1), ($loop,7,1,1), ($loop,8,1,1), ($loop,9,1,1), ($loop,10,1,1);
# prefix exist without duplicate
eval insert into test_bulk_prefix values ($loop, $loop, $loop, 1),($loop, $loop, $loop, 2),($loop, $loop, $loop, 3),($loop, $loop, $loop, 4),($loop, $loop, $loop, 5),($loop, $loop, $loop, 6),($loop, $loop, $loop, 7),($loop, $loop, $loop, 8),($loop, $loop, $loop, 9),($loop, $loop, $loop, 10);
dec $loop;
}
# bulk insert with error
--let $loop=190
--let $loop2=140
--let $loop3=50
--let $loop4=10
while($loop > 185)
{
# values duplicate
--error 1062
eval insert into test_bulk values ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1);
# memtable values duplicate
--error 1062
eval insert into test_bulk values ($loop,11,1,1), ($loop,12,1,1), ($loop,13,1,1), ($loop,14,1,1), ($loop,15,1,1), ($loop,16,1,1), ($loop,17,1,1), ($loop,18,1,1), ($loop,19,1,1), ($loop,$loop4,1,1);
# minor values duplicate
--error 1062
eval insert into test_bulk values ($loop2,11,1,1), ($loop2,12,1,1), ($loop2,13,1,1), ($loop2,$loop4,1,1), ($loop2,15,1,1), ($loop2,16,1,1), ($loop2,17,1,1), ($loop2,18,1,1), ($loop2,19,1,1), ($loop2,20,1,1);
# major values duplicate
--error 1062
eval insert into test_bulk values ($loop3,11,1,1), ($loop3,12,1,1), ($loop3,13,1,1), ($loop3,14,1,1), ($loop3,15,1,1), ($loop3,$loop3,1,1), ($loop3,17,1,1), ($loop3,$loop4,1,1), ($loop3,19,1,1), ($loop3,20,1,1);
dec $loop;
dec $loop2;
dec $loop3;
dec $loop4;
}
--let $insert_sql=$insert_sql_prefix,(190,1,1,1)
--disable_query_log
--error 1062
eval $insert_sql;
--enable_query_log
# delete some data
delete from test_bulk where a = 170;
delete from test_bulk where a = 90;
# bulk insert with error
--let $loop=185
--let $loop2=140
--let $loop3=50
--let $loop4=10
while($loop > 180)
{
# values duplicate
--error 1062
eval insert into test_bulk values ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1), ($loop,$loop,1,1);
# memtable values duplicate
--error 1062
eval insert into test_bulk values (90,1,1,1), (90,2,1,1), (90,3,1,1), (90,4,1,1), (90,5,1,1), (90,6,1,1), (90,7,1,1), (90,8,1,1), (90,9,1,1), (90,10,1,1), ($loop,11,1,1), ($loop,12,1,1), ($loop,13,1,1), ($loop,14,1,1), ($loop,15,1,1), ($loop,16,1,1), ($loop,17,1,1), ($loop,18,1,1), ($loop,19,1,1), ($loop,$loop4,1,1);
--error 1062
eval insert into test_bulk values (170,1,1,1), (170,2,1,1), (170,3,1,1), (170,4,1,1), (170,5,1,1), (170,6,1,1), (170,7,1,1), (170,8,1,1), (170,9,1,1), (170,10,1,1), ($loop,11,1,1), ($loop,12,1,1), ($loop,13,1,1), ($loop,14,1,1), ($loop,15,1,1), ($loop,16,1,1), ($loop,17,1,1), ($loop,18,1,1), ($loop,19,1,1), ($loop,$loop4,1,1);
# minor values duplicate
--error 1062
eval insert into test_bulk values (90,1,1,1), (90,2,1,1), (90,3,1,1), (90,4,1,1), (90,5,1,1), (90,6,1,1), (90,7,1,1), (90,8,1,1), (90,9,1,1), (90,10,1,1), ($loop2,11,1,1), ($loop2,12,1,1), ($loop2,13,1,1), ($loop2,$loop4,1,1), ($loop2,15,1,1), ($loop2,16,1,1), ($loop2,17,1,1), ($loop2,18,1,1), ($loop2,19,1,1), ($loop2,20,1,1);
--error 1062
eval insert into test_bulk values (170,1,1,1), (170,2,1,1), (170,3,1,1), (170,4,1,1), (170,5,1,1), (170,6,1,1), (170,7,1,1), (170,8,1,1), (170,9,1,1), (170,10,1,1), ($loop2,11,1,1), ($loop2,12,1,1), ($loop2,13,1,1), ($loop2,$loop4,1,1), ($loop2,15,1,1), ($loop2,16,1,1), ($loop2,17,1,1), ($loop2,18,1,1), ($loop2,19,1,1), ($loop2,20,1,1);
# major values duplicate
--error 1062
eval insert into test_bulk values (90,1,1,1), (90,2,1,1), (90,3,1,1), (90,4,1,1), (90,5,1,1), (90,6,1,1), (90,7,1,1), (90,8,1,1), (90,9,1,1), (90,10,1,1), ($loop3,11,1,1), ($loop3,12,1,1), ($loop3,13,1,1), ($loop3,14,1,1), ($loop3,15,1,1), ($loop3,$loop3,1,1), ($loop3,17,1,1), ($loop3,$loop4,1,1), ($loop3,19,1,1), ($loop3,20,1,1);
--error 1062
eval insert into test_bulk values (170,1,1,1), (170,2,1,1), (170,3,1,1), (170,4,1,1), (170,5,1,1), (170,6,1,1), (170,7,1,1), (170,8,1,1), (170,9,1,1), (170,10,1,1), ($loop3,11,1,1), ($loop3,12,1,1), ($loop3,13,1,1), ($loop3,14,1,1), ($loop3,15,1,1), ($loop3,$loop3,1,1), ($loop3,17,1,1), ($loop3,$loop4,1,1), ($loop3,19,1,1), ($loop3,20,1,1);
dec $loop;
dec $loop2;
dec $loop3;
dec $loop4;
}
--let $insert_sql=$insert_sql_prefix,(90,1,1,1),(90,2,1,1),(90,3,1,1),(90,4,1,1),(90,5,1,1),(170,6,1,1),(170,7,1,1),(170,8,1,1),(170,9,1,1),(170,10,1,1),(150,1,1,1)
--disable_query_log
--error 1062
eval $insert_sql;
--enable_query_log
--disable_warnings
drop table if exists t;
--enable_warnings