Commit 9c9db1cb authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-14059 Work around a problem exposed by InnoDB GIS debug check

row_sel_get_clust_rec_for_mysql(): Look up the page from the
buffer pool, similar to how MySQL 5.7 does it.
parent c8e63644
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
gis_split_inf : MDEV-14057 InnoDB GIS tests fail gis_split_inf : MDEV-14057 InnoDB GIS tests fail
rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail
rtree_concurrent_srch: MDEV-14059 InnoDB assertion failure offset >= ((38U + 36 + 2 * 10) + 5) at page0page.h line 318
point_big : MDEV-14057 InnoDB GIS tests fail point_big : MDEV-14057 InnoDB GIS tests fail
geometry : MDEV-14057 InnoDB GIS tests fail geometry : MDEV-14057 InnoDB GIS tests fail
bug16236208 : MDEV-14057 InnoDB GIS tests fail bug16236208 : MDEV-14057 InnoDB GIS tests fail
......
...@@ -14,22 +14,25 @@ insert into t1 select * from t1; ...@@ -14,22 +14,25 @@ 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; insert into t1 select * from t1;
SET SESSION debug="+d,rtr_pcur_move_to_next_return"; connect a,localhost,root,,;
SET debug_dbug='+d,rtr_pcur_move_to_next_return';
set session transaction isolation level serializable; set session transaction isolation level serializable;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead'; SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead';
select count(*) from t1 where MBRWithin(t1.c2, @g1);; select count(*) from t1 where MBRWithin(t1.c2, @g1);;
# Establish session con1 (user=root) connect con1,localhost,root,,;
set session transaction isolation level serializable; set session transaction isolation level serializable;
SET DEBUG_SYNC = 'now WAIT_FOR started'; SET DEBUG_SYNC = 'now WAIT_FOR started';
insert into t1 select * from t1; insert into t1 select * from t1;
SET DEBUG_SYNC = 'now SIGNAL go_ahead'; SET DEBUG_SYNC = 'now SIGNAL go_ahead';
connection a;
count(*) count(*)
576 576
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
1152 1152
connection default;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
...@@ -53,6 +56,7 @@ insert into t1 select * from t1; ...@@ -53,6 +56,7 @@ 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; insert into t1 select * from t1;
connection a;
set session transaction isolation level serializable; set session transaction isolation level serializable;
select @@tx_isolation; select @@tx_isolation;
@@tx_isolation @@tx_isolation
...@@ -62,6 +66,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100) ...@@ -62,6 +66,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100)
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
0 0
connect b,localhost,root,,;
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@tx_isolation; select @@tx_isolation;
...@@ -70,16 +75,20 @@ SERIALIZABLE ...@@ -70,16 +75,20 @@ SERIALIZABLE
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;
connection a;
commit; commit;
connection default;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
896 896
insert into t1 values (105, Point(105, 105)); insert into t1 values (105, Point(105, 105));
connection a;
start transaction; start transaction;
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
1 1
connection b;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
...@@ -91,10 +100,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction ...@@ -91,10 +100,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select count(*) from t1; select count(*) from t1;
count(*) count(*)
897 897
connection a;
select sleep(2); select sleep(2);
sleep(2) sleep(2)
0 0
commit; commit;
connection default;
truncate t1; truncate t1;
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)'));
...@@ -107,6 +118,7 @@ insert into t1 select * from t1; ...@@ -107,6 +118,7 @@ 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; insert into t1 select * from t1;
connection a;
set session transaction isolation level serializable; set session transaction isolation level serializable;
select @@tx_isolation; select @@tx_isolation;
@@tx_isolation @@tx_isolation
...@@ -116,6 +128,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100) ...@@ -116,6 +128,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100)
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
0 0
connection b;
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@tx_isolation; select @@tx_isolation;
...@@ -125,11 +138,14 @@ insert into t1 select * from t1; ...@@ -125,11 +138,14 @@ 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; insert into t1 select * from t1;
connection a;
commit; commit;
connection default;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
1792 1792
insert into t1 values (105, Point(105, 105)); insert into t1 values (105, Point(105, 105));
connection a;
start transaction; start transaction;
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
...@@ -138,6 +154,7 @@ count(*) ...@@ -138,6 +154,7 @@ count(*)
select count(*) from t1 where MBRIntersects(t1.c2, @g1); select count(*) from t1 where MBRIntersects(t1.c2, @g1);
count(*) count(*)
1793 1793
connection b;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
...@@ -149,10 +166,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction ...@@ -149,10 +166,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select count(*) from t1; select count(*) from t1;
count(*) count(*)
1793 1793
connection a;
select sleep(2); select sleep(2);
sleep(2) sleep(2)
0 0
commit; commit;
connection default;
truncate t1; truncate t1;
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)'));
...@@ -163,13 +182,16 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); ...@@ -163,13 +182,16 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)'));
set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))'); set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))');
start transaction; start transaction;
delete from t1 where MBRWithin(t1.c2, @g1); delete from t1 where MBRWithin(t1.c2, @g1);
connection a;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
insert into t1 values(4, Point(4,4)); insert into t1 values(4, Point(4,4));
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection default;
rollback; rollback;
connection default;
truncate t1; truncate t1;
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)'));
...@@ -182,13 +204,16 @@ start transaction; ...@@ -182,13 +204,16 @@ start transaction;
select count(*) from t1 where MBRWithin(t1.c2, @g1) for update; select count(*) from t1 where MBRWithin(t1.c2, @g1) for update;
count(*) count(*)
0 0
connection a;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
insert into t1 values(4, Point(4,4)); insert into t1 values(4, Point(4,4));
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection default;
rollback; rollback;
connection default;
truncate t1; truncate t1;
create procedure insert_t1(IN start int, IN total int) create procedure insert_t1(IN start int, IN total int)
begin begin
...@@ -200,6 +225,7 @@ set i = i + 1; ...@@ -200,6 +225,7 @@ set i = i + 1;
end while; end while;
end| end|
CALL insert_t1(0, 1000); CALL insert_t1(0, 1000);
connection a;
set session transaction isolation level serializable; set session transaction isolation level serializable;
select @@tx_isolation; select @@tx_isolation;
@@tx_isolation @@tx_isolation
...@@ -208,17 +234,21 @@ start transaction; ...@@ -208,17 +234,21 @@ start transaction;
set @g1 = ST_GeomFromText('Polygon((800 800, 800 1000, 1000 1000, 1000 800, 800 800))'); set @g1 = ST_GeomFromText('Polygon((800 800, 800 1000, 1000 1000, 1000 800, 800 800))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
199 201
connection b;
CALL insert_t1(1001, 2000); CALL insert_t1(1001, 2000);
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
insert into t1 values (1200, Point(950, 950)); insert into t1 values (1200, Point(950, 950));
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection a;
select sleep(2); select sleep(2);
sleep(2) sleep(2)
0 0
commit; commit;
SET SESSION debug="-d,rtr_pcur_move_to_next_return"; disconnect a;
disconnect b;
connection default;
drop table t1; drop table t1;
drop procedure insert_t1; drop procedure insert_t1;
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
...@@ -229,14 +259,19 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); ...@@ -229,14 +259,19 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)'));
connect a,localhost,root,,;
SET SESSION debug="+d,rtr_pcur_move_to_next_return"; SET SESSION debug="+d,rtr_pcur_move_to_next_return";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
set transaction isolation level serializable; set transaction isolation level serializable;
start transaction; start transaction;
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
0 0
connect b,localhost,root,,;
delete from t1 where c1 = 1; delete from t1 where c1 = 1;
connection a;
commit; commit;
set transaction isolation level serializable; set transaction isolation level serializable;
start transaction; start transaction;
...@@ -244,10 +279,13 @@ set @g1 = ST_GeomFromText('Polygon((0 0, 0 300, 300 300, 300 0, 0 0))'); ...@@ -244,10 +279,13 @@ set @g1 = ST_GeomFromText('Polygon((0 0, 0 300, 300 300, 300 0, 0 0))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
2 2
connection b;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
delete from t1 where c1 = 2; delete from t1 where c1 = 2;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection a;
commit; commit;
connection default;
drop table t1; drop table t1;
SET DEBUG_SYNC= 'RESET'; SET DEBUG_SYNC= 'RESET';
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
...@@ -273,18 +311,22 @@ insert into t1 select * from t1; ...@@ -273,18 +311,22 @@ insert into t1 select * from t1;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
4608 4608
connection b;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
set transaction isolation level read uncommitted; set transaction isolation level read uncommitted;
SET DEBUG_SYNC= 'row_search_for_mysql_before_return SIGNAL siga WAIT_FOR sigb'; SET DEBUG_SYNC= 'row_search_for_mysql_before_return SIGNAL siga WAIT_FOR sigb';
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR siga'; SET DEBUG_SYNC= 'now WAIT_FOR siga';
rollback; rollback;
SET DEBUG_SYNC= 'now SIGNAL sigb'; SET DEBUG_SYNC= 'now SIGNAL sigb';
connection b;
count(*) count(*)
1 1
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
0 0
connection default;
DROP TABLE t1; DROP TABLE t1;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
...@@ -298,15 +340,21 @@ end while; ...@@ -298,15 +340,21 @@ end while;
end| end|
start transaction; start transaction;
CALL insert_t1(100); CALL insert_t1(100);
connection a;
set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))');
SET DEBUG_SYNC= 'rtr_pcur_move_to_next_return SIGNAL siga WAIT_FOR sigb'; SET DEBUG_SYNC= 'rtr_pcur_move_to_next_return SIGNAL siga WAIT_FOR sigb';
select count(*) from t1 where MBRWithin(t1.c2, @g1);; select count(*) from t1 where MBRWithin(t1.c2, @g1);;
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR siga'; SET DEBUG_SYNC= 'now WAIT_FOR siga';
rollback; rollback;
SET DEBUG_SYNC= 'now SIGNAL sigb'; SET DEBUG_SYNC= 'now SIGNAL sigb';
connection a;
count(*) count(*)
0 0
connection default;
drop procedure insert_t1; drop procedure insert_t1;
DROP TABLE t1; DROP TABLE t1;
SET SESSION debug="-d,rtr_pcur_move_to_next_return"; disconnect a;
disconnect b;
connection default;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
# WL#6745 InnoDB R-tree support # WL#6745 InnoDB R-tree support
# This test case will test R-tree split. # 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_innodb.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_debug_sync.inc --source include/have_debug_sync.inc
...@@ -32,8 +29,7 @@ insert into t1 select * from t1; ...@@ -32,8 +29,7 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
connect (a,localhost,root,,); connect (a,localhost,root,,);
connection a; SET debug_dbug='+d,rtr_pcur_move_to_next_return';
SET SESSION debug="+d,rtr_pcur_move_to_next_return";
set session transaction isolation level serializable; set session transaction isolation level serializable;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
...@@ -41,9 +37,7 @@ SET DEBUG_SYNC = 'RESET'; ...@@ -41,9 +37,7 @@ SET DEBUG_SYNC = 'RESET';
SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead'; 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); --send select count(*) from t1 where MBRWithin(t1.c2, @g1);
--echo # Establish session con1 (user=root)
connect (con1,localhost,root,,); connect (con1,localhost,root,,);
connection con1;
set session transaction isolation level serializable; set session transaction isolation level serializable;
SET DEBUG_SYNC = 'now WAIT_FOR started'; SET DEBUG_SYNC = 'now WAIT_FOR started';
...@@ -92,7 +86,6 @@ select count(*) from t1 where MBRwithin(t1.c2, @g1); ...@@ -92,7 +86,6 @@ select count(*) from t1 where MBRwithin(t1.c2, @g1);
# The split will replicate locks across pages # The split will replicate locks across pages
connect (b,localhost,root,,); connect (b,localhost,root,,);
connection b;
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
...@@ -292,15 +285,8 @@ insert into t1 values (1200, Point(950, 950)); ...@@ -292,15 +285,8 @@ insert into t1 values (1200, Point(950, 950));
connection a; connection a;
select sleep(2); select sleep(2);
commit; commit;
connection a;
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
disconnect a; disconnect a;
--source include/wait_until_disconnected.inc
connection b;
disconnect b; disconnect b;
--source include/wait_until_disconnected.inc
# Clean up. # Clean up.
connection default; connection default;
...@@ -321,7 +307,6 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); ...@@ -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)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)'));
connect (a,localhost,root,,); connect (a,localhost,root,,);
connection a;
SET SESSION debug="+d,rtr_pcur_move_to_next_return"; SET SESSION debug="+d,rtr_pcur_move_to_next_return";
set transaction isolation level serializable; set transaction isolation level serializable;
...@@ -330,7 +315,6 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100) ...@@ -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); select count(*) from t1 where MBRwithin(t1.c2, @g1);
connect (b,localhost,root,,); connect (b,localhost,root,,);
connection b;
# This should be successful # This should be successful
delete from t1 where c1 = 1; delete from t1 where c1 = 1;
...@@ -432,20 +416,14 @@ rollback; ...@@ -432,20 +416,14 @@ rollback;
SET DEBUG_SYNC= 'now SIGNAL sigb'; SET DEBUG_SYNC= 'now SIGNAL sigb';
connection a; connection a;
--reap; reap;
connection default; connection default;
drop procedure insert_t1; drop procedure insert_t1;
DROP TABLE t1; DROP TABLE t1;
connection a;
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
disconnect a; disconnect a;
--source include/wait_until_disconnected.inc
connection b;
disconnect b; disconnect b;
--source include/wait_until_disconnected.inc
connection default; connection default;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
...@@ -3392,8 +3392,14 @@ row_sel_get_clust_rec_for_mysql( ...@@ -3392,8 +3392,14 @@ row_sel_get_clust_rec_for_mysql(
goto func_exit; goto func_exit;
} }
buf_block_t* block = btr_pcur_get_block( /* FIXME: Why is this block not the
prebuilt->pcur); same as btr_pcur_get_block(prebuilt->pcur),
and is it not unsafe to use RW_NO_LATCH here? */
buf_block_t* block = buf_page_get_gen(
btr_pcur_get_block(prebuilt->pcur)->page.id,
dict_table_page_size(sec_index->table),
RW_NO_LATCH, NULL, BUF_GET,
__FILE__, __LINE__, mtr, &err);
mem_heap_t* heap = mem_heap_create(256); mem_heap_t* heap = mem_heap_create(256);
dtuple_t* tuple = dict_index_build_data_tuple( dtuple_t* tuple = dict_index_build_data_tuple(
rec, sec_index, true, rec, sec_index, true,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment