mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
Conflicts: mysql-test/r/cte_nonrecursive.result mysql-test/suite/galera/r/galera_bf_abort.result mysql-test/suite/galera/r/galera_bf_abort_get_lock.result mysql-test/suite/galera/r/galera_bf_abort_sleep.result mysql-test/suite/galera/r/galera_enum.result mysql-test/suite/galera/r/galera_fk_conflict.result mysql-test/suite/galera/r/galera_insert_multi.result mysql-test/suite/galera/r/galera_many_indexes.result mysql-test/suite/galera/r/galera_mdl_race.result mysql-test/suite/galera/r/galera_nopk_bit.result mysql-test/suite/galera/r/galera_nopk_blob.result mysql-test/suite/galera/r/galera_nopk_large_varchar.result mysql-test/suite/galera/r/galera_nopk_unicode.result mysql-test/suite/galera/r/galera_pk_bigint_signed.result mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result mysql-test/suite/galera/r/galera_serializable.result mysql-test/suite/galera/r/galera_toi_drop_database.result mysql-test/suite/galera/r/galera_toi_lock_exclusive.result mysql-test/suite/galera/r/galera_toi_truncate.result mysql-test/suite/galera/r/galera_unicode_pk.result mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result mysql-test/suite/galera/r/galera_wsrep_log_conficts.result sql/field.cc sql/rpl_gtid.cc sql/share/errmsg-utf8.txt sql/sql_acl.cc sql/sql_parse.cc sql/sql_partition_admin.cc sql/sql_prepare.cc sql/sql_repl.cc sql/sql_table.cc sql/sql_yacc.yy
This commit is contained in:
@ -1,6 +1,4 @@
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
|
||||
create table t1(a geometrycollection not null,spatial key(a))engine=innodb;
|
||||
|
||||
@ -21,9 +19,6 @@ insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(
|
||||
insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ;
|
||||
insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ;
|
||||
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
|
3
mysql-test/suite/innodb_gis/t/innodb_gis_rtree.test
Normal file
3
mysql-test/suite/innodb_gis/t/innodb_gis_rtree.test
Normal file
@ -0,0 +1,3 @@
|
||||
-- source include/innodb_page_size.inc
|
||||
-- source include/innodb_row_format.inc
|
||||
-- source ../../../t/gis-rtree.test
|
@ -1,34 +0,0 @@
|
||||
--source include/not_embedded.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/innodb_page_size_small.inc
|
||||
|
||||
# Test the redundant format
|
||||
LET $file_per_table='off';
|
||||
LET $file_format='Antelope';
|
||||
LET $row_format=REDUNDANT;
|
||||
|
||||
--source include/innodb_gis_row_format_basic.inc
|
||||
|
||||
|
||||
# Test the compressed format
|
||||
LET $file_per_table='on';
|
||||
LET $file_format='Barracuda';
|
||||
LET $row_format=COMPRESSED;
|
||||
|
||||
--source include/innodb_gis_row_format_basic.inc
|
||||
|
||||
|
||||
# Test the dynamic format
|
||||
LET $file_per_table='on';
|
||||
LET $file_format='Barracuda';
|
||||
LET $row_format=DYNAMIC;
|
||||
|
||||
--source include/innodb_gis_row_format_basic.inc
|
||||
|
||||
# Test the compact format
|
||||
LET $file_per_table='off';
|
||||
LET $file_format='Antelope';
|
||||
LET $row_format=COMPACT;
|
||||
|
||||
--source include/innodb_gis_row_format_basic.inc
|
||||
|
@ -4,17 +4,15 @@
|
||||
# Not supported in embedded
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_zip.inc
|
||||
--source include/innodb_page_size_small.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/big_test.inc
|
||||
# Valgrind takes too much time on PB2 even in the --big-test runs.
|
||||
--source include/not_valgrind.inc
|
||||
|
||||
# Create table with R-tree index.
|
||||
SET GLOBAL innodb_file_per_table=1;
|
||||
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
|
||||
|
||||
#Create table with R-tree index.
|
||||
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED;
|
||||
|
||||
# Insert enough values to let R-tree split.
|
||||
@ -53,12 +51,14 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
|
||||
SET @saved_dbug = @@SESSION.debug_dbug;
|
||||
SET DEBUG='+d,page_copy_rec_list_start_compress_fail';
|
||||
delete from t1;
|
||||
SET DEBUG='-d,page_copy_rec_list_start_compress_fail';
|
||||
|
||||
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
SET debug_dbug = @saved_dbug;
|
||||
|
||||
--source ../../innodb/include/wait_all_purged.inc
|
||||
|
||||
# Clean up.
|
||||
drop table t1;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
|
||||
|
@ -4,8 +4,7 @@
|
||||
# Restarting is not supported in embedded
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_zip.inc
|
||||
--source include/innodb_page_size_small.inc
|
||||
--source include/big_test.inc
|
||||
# Valgrind takes too much time on PB2 even in the --big-test runs.
|
||||
--source include/not_valgrind.inc
|
||||
@ -29,31 +28,14 @@ delimiter ;|
|
||||
|
||||
# Test level 3 rtree.
|
||||
CALL insert_t1(70000);
|
||||
select count(*) from t1;
|
||||
|
||||
# Check table.
|
||||
check table t1;
|
||||
|
||||
truncate table t1;
|
||||
|
||||
# Test crash recovery.
|
||||
#
|
||||
#
|
||||
call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds");
|
||||
|
||||
# Test rtree enlarge recovery.
|
||||
START TRANSACTION;
|
||||
CALL insert_t1(5000);
|
||||
#select count(*) from t1;
|
||||
|
||||
# Check table.
|
||||
#check table t1;
|
||||
|
||||
COMMIT;
|
||||
|
||||
--let $shutdown_timeout=0
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
check table t1;
|
||||
select count(*) from t1;
|
||||
delete from t1;
|
||||
|
||||
# Clean up.
|
||||
drop procedure insert_t1;
|
||||
drop table t1;
|
||||
|
@ -1,9 +1,6 @@
|
||||
# WL#6745 InnoDB R-tree support
|
||||
# This test case will test R-tree split.
|
||||
|
||||
# Not supported in embedded
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
@ -32,8 +29,7 @@ insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
|
||||
connect (a,localhost,root,,);
|
||||
connection a;
|
||||
SET SESSION debug="+d,rtr_pcur_move_to_next_return";
|
||||
SET debug_dbug='+d,rtr_pcur_move_to_next_return';
|
||||
|
||||
set session transaction isolation level serializable;
|
||||
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
|
||||
@ -41,9 +37,7 @@ SET DEBUG_SYNC = 'RESET';
|
||||
SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead';
|
||||
--send select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
|
||||
--echo # Establish session con1 (user=root)
|
||||
connect (con1,localhost,root,,);
|
||||
connection con1;
|
||||
set session transaction isolation level serializable;
|
||||
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR started';
|
||||
@ -92,7 +86,6 @@ select count(*) from t1 where MBRwithin(t1.c2, @g1);
|
||||
|
||||
# The split will replicate locks across pages
|
||||
connect (b,localhost,root,,);
|
||||
connection b;
|
||||
set session transaction isolation level serializable;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
|
||||
@ -292,15 +285,8 @@ insert into t1 values (1200, Point(950, 950));
|
||||
connection a;
|
||||
select sleep(2);
|
||||
commit;
|
||||
|
||||
connection a;
|
||||
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
|
||||
disconnect a;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
connection b;
|
||||
disconnect b;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
# Clean up.
|
||||
connection default;
|
||||
@ -321,7 +307,6 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)'));
|
||||
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)'));
|
||||
|
||||
connect (a,localhost,root,,);
|
||||
connection a;
|
||||
SET SESSION debug="+d,rtr_pcur_move_to_next_return";
|
||||
|
||||
set transaction isolation level serializable;
|
||||
@ -330,7 +315,6 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100)
|
||||
select count(*) from t1 where MBRwithin(t1.c2, @g1);
|
||||
|
||||
connect (b,localhost,root,,);
|
||||
connection b;
|
||||
|
||||
# This should be successful
|
||||
delete from t1 where c1 = 1;
|
||||
@ -432,20 +416,14 @@ rollback;
|
||||
SET DEBUG_SYNC= 'now SIGNAL sigb';
|
||||
|
||||
connection a;
|
||||
--reap;
|
||||
reap;
|
||||
|
||||
connection default;
|
||||
drop procedure insert_t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
connection a;
|
||||
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
|
||||
disconnect a;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
connection b;
|
||||
disconnect b;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
connection default;
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,52 +1,32 @@
|
||||
# This test case will test R-tree purge.
|
||||
|
||||
# Not supported in embedded
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_zip.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/big_test.inc
|
||||
--source include/innodb_page_size.inc
|
||||
# Valgrind takes too much time on PB2 even in the --big-test runs.
|
||||
--source include/not_valgrind.inc
|
||||
|
||||
# Temporarily disable it for 4k page size. Since it'll take too long
|
||||
# time.
|
||||
--disable_warnings
|
||||
if (`SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 4096`)
|
||||
{
|
||||
--skip Test requires InnoDB with not 4k Page size.
|
||||
}
|
||||
--enable_warnings
|
||||
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
|
||||
|
||||
create table t (
|
||||
a point not null,b point not null,c point,
|
||||
d point not null,e point,f point,
|
||||
spatial key (d),spatial key (b)
|
||||
b point not null,d point not null, spatial key (d),spatial key (b)
|
||||
) engine=innodb;
|
||||
|
||||
delimiter |;
|
||||
create procedure p(i int)
|
||||
begin
|
||||
declare n int default 0;
|
||||
declare continue handler for sqlexception begin end;
|
||||
delete from t;
|
||||
repeat
|
||||
set @p=point(1,1);
|
||||
insert into t values(@p,@p,@p,@p,@p,@p);
|
||||
insert into t values(@p,@p,@p,@p,@p,@p);
|
||||
insert into t select @p,@p,@p,@p,@p,@p
|
||||
from t a,t b,t c,t d,t e,t f,t g,t h,t i,t j;
|
||||
delete from t;
|
||||
set n:=n+1;
|
||||
until n >= i end repeat;
|
||||
end|
|
||||
delimiter ;|
|
||||
--disable_query_log
|
||||
set @p=point(1,1);
|
||||
let $n=200;
|
||||
while ($n) {
|
||||
begin;
|
||||
insert into t values(@p,@p),(@p,@p);
|
||||
insert into t select @p,@p
|
||||
from t a,t b,t c,t d,t e,t f,t g;
|
||||
delete from t;
|
||||
commit;
|
||||
dec $n;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
call p(200);
|
||||
|
||||
--source include/wait_all_purged.inc
|
||||
--source ../../innodb/include/wait_all_purged.inc
|
||||
|
||||
# Clean up.
|
||||
drop procedure p;
|
||||
drop table t;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
|
||||
|
@ -31,9 +31,10 @@ insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
|
||||
#Check second round spliting.
|
||||
SET SESSION debug="+d, rtr_page_need_second_split";
|
||||
SET @saved_dbug = @@SESSION.debug_dbug;
|
||||
SET debug_dbug = '+d, rtr_page_need_second_split';
|
||||
insert into t1 select * from t1;
|
||||
SET SESSION debug="-d, rtr_page_need_second_split";
|
||||
SET debug_dbug = @saved_dbug;
|
||||
|
||||
delete from t1;
|
||||
|
||||
@ -79,24 +80,27 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
drop index c2 on t1;
|
||||
|
||||
# Test create index with algorithm=inplace
|
||||
--enable_info
|
||||
create spatial index idx2 on t1(c2);
|
||||
--disable_info
|
||||
|
||||
show create table t1;
|
||||
|
||||
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
|
||||
# test read only case
|
||||
let $restart_parameters = restart: --innodb-read-only;
|
||||
let $restart_parameters = --innodb-read-only;
|
||||
--source include/restart_mysqld.inc
|
||||
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
|
||||
set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
|
||||
let $restart_parameters = restart;
|
||||
let $restart_parameters =;
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
|
||||
# Clean up.
|
||||
drop table t1;
|
||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user