Merge InnoDB test cases from MySQL 5.7 (MDEV-13626)

[MDEV-14406] Review and fix tests from innodb_gis suite Created: 2017-11-15  Updated: 2021-10-25  Resolved: 2021-10-25

Status: Closed
Project: MariaDB Server
Component/s: Tests
Affects Version/s: 10.2
Fix Version/s: 10.2.32, 10.3.23, 10.4.13, 10.5.3

Type: Technical task Priority: Major
Reporter: Alice Sherepa Assignee: Marko Mäkelä
Resolution: Duplicate Votes: 0
Labels: None

Issue Links:
Duplicate
duplicates MDEV-14057 InnoDB GIS tests fail Closed

 Description   

https://github.com/MariaDB/server/tree/bb-10.2-alice/mysql-test/suite/innodb_gis
tests that fail:
bug16236208
bug16266012
geometry
gis_split_inf
gis_split_nan
point_big
row_format
rtree_concurrent_srch: MDEV-14059 InnoDB assertion failure offset >= ((38U + 36 + 2 * 10) + 5) at page0page.h line 318
rtree_multi_pk
rtree_old
rtree_recovery : MDEV-14058 InnoDB Assertion failure !leaf on rem0rec.cc line 566 on test innodb_rtree_recovery
rtree_search
rtree_split

rtree_compress2 and kill_server do not fail anymore, so MDEV-14218 maybe is fixed.

innodb_gis.row_format '16k,innodb'       w3 [ fail ]
        Test ended at 2017-11-15 17:00:28
 
CURRENT_TEST: innodb_gis.row_format
--- /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/row_format.result	2017-10-27 11:03:38.232532000 +0200
+++ /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/row_format.reject	2017-11-15 17:00:28.449142955 +0100
@@ -389,7 +389,7 @@
 DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point);
 SELECT COUNT(*) FROM t1;
 COUNT(*)
-353
+0
 DROP TABLE t1;
 SET GLOBAL innodb_file_per_table=default;
 SET GLOBAL innodb_file_format=default;
@@ -786,7 +786,7 @@
 DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point);
 SELECT COUNT(*) FROM t1;
 COUNT(*)
-353
+0
 DROP TABLE t1;
 SET GLOBAL innodb_file_per_table=default;
 SET GLOBAL innodb_file_format=default;
@@ -1183,7 +1183,7 @@
 DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point);
 SELECT COUNT(*) FROM t1;
 COUNT(*)
-353
+0
 DROP TABLE t1;
 SET GLOBAL innodb_file_per_table=default;
 SET GLOBAL innodb_file_format=default;
@@ -1580,7 +1580,7 @@
 DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point);
 SELECT COUNT(*) FROM t1;
 COUNT(*)
-353
+0
 DROP TABLE t1;
 SET GLOBAL innodb_file_per_table=default;
 SET GLOBAL innodb_file_format=default;
 
mysqltest: Result length mismatch

innodb_gis.gis_split_inf 'innodb'        w3 [ fail ]
        Test ended at 2017-11-15 17:02:38
 
CURRENT_TEST: innodb_gis.gis_split_inf
mysqltest: At line 18: query 'insert  into  t1(a)  values( geometrycollection(multipoint(point(-3,7), point(4,-3), point(-6,-2), point(-9,1)), polygon(linestring(point(-17,-5), point(2,-8), point(-6,9), point(-9,19), point(-17,-5)), linestring(point(10,-1), point(15,-7), point(-13,6), point(10,-1))), multipolygon(polygon(linestring(point(69,-69), point(-90,-64), point(-17,4), point(47,-73), point(69,-69)), linestring(point(-35,-77), point(-35,-77)), linestring(point(95,-76), point(1.636688e+308,1.828723e+307), point(68719476740,536870916), point(95,-76)), linestring(point(-26,-85), point(-26,-85)), linestring(point(-53,57), point(-53,57)), linestring(point(-98,-64), point(79,-57), point(-98,-64)), linestring(point(-91,59), point(16,0), point(73,97), point(-35,-70), point(-91,59))))) )  ' succeeded - should have failed with errno 3037...
 
The result from queries just before the failure was:
create table t1(a geometrycollection not null,spatial key(a))engine=innodb;
insert into  t1(a)  values( geometrycollection(multipolygon(polygon(linestring(point(-14,98), point(-14,98)), linestring(point(-97,64), point(-70,99), point(-97,64)), linestring(point(143851215403059150000000000000000000000.000000,13040009882500140000000000000000000000.000000), point(-73,85), point(-88,-29)))), multipolygon(polygon(linestring(point(41,95), point(4294967298,2050)), linestring(point(-61,85), point(-75,93), point(14,-2), point(1,84), point(-61,85)), linestring(point(-62,52), point(39,5), point(-18,12), point(-62,52))), polygon(linestring(point(-77,1), point(66,61), point(-77,1)), linestring(point(18446744073709551615,1125899906842622), point(-72,49), point(24,-66), point(82,73), point(68,22))), polygon(linestring(point(1048576,17179869181), point(-18,95), point(-90,-3), point(-33,82), point(20,-85)), linestring(point(-43,-97), point(-7,-3), point(39,-82), point(-65,-58), point(-43,-97)), linestring(point(44,-34), point(-69,58), point(44,-34)), linestring(point(57,-13), point(-17,74), point(57,-13)), linestring(point(3,71), point(-58,81), point(3,71)), linestring(point(9,25), point(77,-71), point(8388607,67108864), point(46,46), point(9,25)), linestring(point(98,-82), point(98,-82))))) )  ;
Got one of the listed errors
insert into  t1(a)  values( geometrycollection(multilinestring(linestring(point(39,-60), point(-62,-11), point(-24,35), point(54,1)), linestring(point(-4,69), point(-22,-64), point(1.694824e+308,5.688896e+307), point(-33,-58), point(-64,-80), point(-15,-44), point(40,54)), linestring(point(-86,-54), point(11,41), point(-46,-38), point(-21,-8), point(10,70), point(-81,22), point(-46,-100)), linestring(point(-30,-48), point(50,58), point(-53,92), point(10,41), point(-46,-8)), linestring(point(-65,34), point(-92,93), point(-33,-74), point(75,-28)), linestring(point(25,-55), point(22,-10), point(-42,0), point(-86,-59), point(2,-37), point(63,-44), point(-55,-22)), linestring(point(28,0), point(-94,99), point(-32,-86)), linestring(point(9,-12), point(16,9), point(80,-73)), linestring(point(6,-55), point(83,-4)), linestring(point(-15,21), point(144115188075855876,16777212), point(-85,-31), point(-90,-50)), linestring(point(-33,33), point(21,90), point(-89,32)), linestring(point(16,24), point(73,-13), point(25,-48), point(71,52), point(-54,-78), point(-84,59), point(53,29)), linestring(point(-15,-81), point(83,43), point(-71,33), point(-8,0), point(84,-54), point(-35,38), point(-10,-50)), linestring(point(38,-50), point(20,-2), point(-57,-92)), linestring(point(5,-93), point(231601833467477080000000000000000000000.000000,51914987457169239000000000000000000000.000000), point(-94,62))), point(2,0)) )  ;
insert  into  t1(a)  values( geometrycollection(multilinestring(linestring(point(80,-15), point(65,-57), point(-59,16), point(22,-67)), linestring(point(20,-55), point(-38,-64), point(19,-53), point(-63,-36), point(56,-37)), linestring(point(27,-8), point(-85,-75), point(4398046511106,2251799813685245)), linestring(point(45,32), point(-79,46))), multilinestring(linestring(point(8,-4), point(40,-38), point(100,95), point(5,-80), point(82,88)), linestring(point(-14,30), point(-94,51), point(-16,-29), point(37,-97), point(-26,92)), linestring(point(32,34), point(83,-23), point(-55,57), point(-15,90), point(32,-50), point(-20,-73), point(77,28)), linestring(point(4,88), point(87,74), point(-67,-58)), linestring(point(5.660747e+307,6.385657e+307), point(-58,-15), point(1.172095e+308,1.448533e+308)), linestring(point(-21,-37), point(-52,79), point(-16,-76), point(-65,-94), point(36,7), point(37,74), point(100,-57)), linestring(point(-23,-82), point(-73,23), point(18,-34)), linestring(point(20,-51), point(93,62), point(-65,84)), linestring(point(-48,31), point(-69,-96)), linestring(point(-5,78), point(10,-99), point(36,-33)), linestring(point(-84,55), point(96,1), point(-98,-29), point(-15,81), point(-27,-6), point(58,-32), point(54,-16)), linestring(point(2,5), point(2199023255553,8192)), linestring(point(12,-78), point(-97,-83)), linestring(point(-74,79), point(35,-56), point(50,95)), linestring(point(28,16), point(-39,-40), point(48,-3)), linestring(point(2199023255550,-65539), point(62,-25), point(94,-62)), linestring(point(-74,83), point(-18,75), point(91,17), point(-11,-48), point(30,100)), linestring(point(57,-13), point(88,-45)), linestring(point(20,-64), point(-37,13), point(20,35))), point(-3,-4)) )  ;
insert  into  t1(a)  values( geometrycollection(multipolygon(polygon(linestring(point(-34,19), point(-25,92), point(61921390294166805000000000000000000000.000000,319674749161701840000000000000000000000.000000), point(56,50), point(-34,19)), linestring(point(-26,-58), point(99,-50), point(34,-20), point(-26,-58)), linestring(point(-42,45), point(-63,-7), point(5,-89), point(-97,36), point(-42,45)), linestring(point(94,11), point(-71,4), point(94,11)), linestring(point(16,25), point(4,-33), point(-45,-33), point(-64,-77), point(16,25)), linestring(point(19,45), point(36,45), point(-83,-96), point(19,45)), linestring(point(85,-31), point(-87,52), point(85,-31))), polygon(linestring(point(55,-88), point(63,-12), point(55,-88)), linestring(point(-49,10), point(-49,10)), linestring(point(-51,-32), point(-51,-32)))), multipolygon(polygon(linestring(point(-21,-8), point(66,-58), point(100,-27), point(-21,-8)), linestring(point(-29,-13), point(-29,-13))), polygon(linestring(point(91307574660224730000000000000000000000.000000,101214152547755520000000000000000000000.000000), point(89,64), point(77,87), point(66,29), point(-71,-53)), linestring(point(38,-78), point(-43,-90), point(37,20), point(81,65), point(38,-78))), polygon(linestring(point(51,0), point(-62,8), point(-11,22), point(51,0)), linestring(point(-4,-44), point(6,82), point(-19,-90), point(131,32)))), point(-4,-7)) )  ;
Got one of the listed errors
insert  into  t1(a)  values( geometrycollection(point(10,9), linestring(point(2305843009213693955,-1125899906842621), point(78,15)), multipoint(point(-1,3), point(4,-6))) )  ;
insert  into  t1(a)  values( geometrycollection(polygon(linestring(point(0,13), point(-12,5), point(0,13)), linestring(point(11,-2), point(6,6), point(20,-14), point(-3,-10), point(1.330588e+308,2.666476e+307)), linestring(point(16382,67), point(7,4)), linestring(point(2,7), point(-14,15), point(2,7)), linestring(point(-14,12), point(-8,-8), point(-17,-2), point(-14,12)), linestring(point(-20,-10), point(-8,-13), point(-19,-17), point(13,-3), point(-20,-10)), linestring(point(-5,13), point(7,-9), point(6,8), point(-5,13))), linestring(point(-87,19), point(-64,51), point(-16,12)), multipoint(point(-1,-10), point(2,-10), point(3.670354e+307,2.501459e+307))) )  ;
Got one of the listed errors
insert  into  t1(a)  values( geometrycollection(multipoint(point(-3,7), point(4,-3), point(-6,-2), point(-9,1)), polygon(linestring(point(-17,-5), point(2,-8), point(-6,9), point(-9,19), point(-17,-5)), linestring(point(10,-1), point(15,-7), point(-13,6), point(10,-1))), multipolygon(polygon(linestring(point(69,-69), point(-90,-64), point(-17,4), point(47,-73), point(69,-69)), linestring(point(-35,-77), point(-35,-77)), linestring(point(95,-76), point(1.636688e+308,1.828723e+307), point(68719476740,536870916), point(95,-76)), linestring(point(-26,-85), point(-26,-85)), linestring(point(-53,57), point(-53,57)), linestring(point(-98,-64), point(79,-57), point(-98,-64)), linestring(point(-91,59), point(16,0), point(73,97), point(-35,-70), point(-91,59))))) )  ;

 
innodb_gis.rtree_multi_pk 'innodb'       w3 [ fail ]
        Test ended at 2017-11-15 17:02:56
 
CURRENT_TEST: innodb_gis.rtree_multi_pk
mysqltest: At line 79: query 'SET @vert1   = ST_GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))')' succeeded - should have failed with errno 3037...
 
The result from queries just before the failure was:
< snip >
down	POLYGON((0 -1,0 1,2 1,2 -1,0 -1))
down2	POLYGON((0 -2,0 0,2 0,2 -2,0 -2))
left	POLYGON((-1 0,-1 2,1 2,1 0,-1 0))
left2	POLYGON((-2 0,-2 2,0 2,0 0,-2 0))
SELECT name, ST_AsText(square) from t1 where MBROverlaps(@p, square);
name	ST_AsText(square)
right	POLYGON((1 0,1 2,3 2,3 0,1 0))
up	POLYGON((0 1,0 3,2 3,2 1,0 1))
down	POLYGON((0 -1,0 1,2 1,2 -1,0 -1))
left	POLYGON((-1 0,-1 2,1 2,1 0,-1 0))
SELECT name, ST_AsText(square) from t1 where MBRTouches(@p, square);
name	ST_AsText(square)
right2	POLYGON((2 0,2 2,4 2,4 0,2 0))
up2	POLYGON((0 2,0 4,2 4,2 2,0 2))
down2	POLYGON((0 -2,0 0,2 0,2 -2,0 -2))
left2	POLYGON((-2 0,-2 2,0 2,0 0,-2 0))
SELECT name, ST_AsText(square) from t1 where MBRWithin(@p, square);
name	ST_AsText(square)
big	POLYGON((0 0,0 3,3 3,3 0,0 0))
SET @vert1   = ST_GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');

 
innodb_gis.rtree_old 'innodb'            w3 [ fail ]
        Test ended at 2017-11-15 17:02:58
 
CURRENT_TEST: innodb_gis.rtree_old
mysqltest: At line 134: query 'INSERT INTO t1 (name, kind, line) VALUES
("Aadaouane", "pp", ST_GeomFromText("POINT(32.816667 35.983333)")),
("Aadassiye", "pp", ST_GeomFromText("POINT(35.816667 36.216667)")),
("Aadbel", "pp", ST_GeomFromText("POINT(34.533333 36.100000)")),
("Aadchit", "pp", ST_GeomFromText("POINT(33.347222 35.423611)")),
("Aadchite", "pp", ST_GeomFromText("POINT(33.347222 35.423611)")),
("Aadchit el Qoussair", "pp", ST_GeomFromText("POINT(33.283333 35.483333)")),
("Aaddaye", "pp", ST_GeomFromText("POINT(36.716667 40.833333)")),
("'Aadeissa", "pp", ST_GeomFromText("POINT(32.823889 35.698889)")),
("Aaderup", "pp", ST_GeomFromText("POINT(55.216667 11.766667)")),
("Qalaat Aades", "pp", ST_GeomFromText("POINT(33.503333 35.377500)")),
("A ad'ino", "pp", ST_GeomFromText("POINT(54.812222 38.209167)")),
("Aadi Noia", "pp", ST_GeomFromText("POINT(13.800000 39.833333)")),
("Aad La Macta", "pp", ST_GeomFromText("POINT(35.779444 -0.129167)")),
("Aadland", "pp", ST_GeomFromText("POINT(60.366667 5.483333)")),
("Aadliye", "pp", ST_GeomFromText("POINT(33.366667 36.333333)")),
("Aadloun", "pp", ST_GeomFromText("POINT(33.403889 35.273889)")),
("Aadma", "pp", ST_GeomFromText("POINT(58.798333 22.663889)")),
("Aadma Asundus", "pp", ST_GeomFromText("POINT(58.798333 22.663889)")),
("Aadmoun", "pp", ST_GeomFromText("POINT(34.150000 35.650000)")),
("Aadneram", "pp", ST_GeomFromText("POINT(59.016667 6.933333)")),
("Aadneskaar", "pp", ST_GeomFromText("POINT(58.083333 6.983333)")),
("Aadorf", "pp", ST_GeomFromText("POINT(47.483333 8.900000)")),
("Aadorp", "pp", ST_GeomFromText("POINT(52.366667 6.633333)")),
("Aadouane", "pp", ST_GeomFromText("POINT(32.816667 35.983333)")),
("Aadoui", "pp", ST_GeomFromText("POINT(34.450000 35.983333)")),
("Aadouiye", "pp", ST_GeomFromText("POINT(34.583333 36.183333)")),
("Aadouss", "pp", ST_GeomFromText("POINT(33.512500 35.601389)")),
("Aadra", "pp", ST_GeomFromText("POINT(33.616667 36.500000)")),
("Aadzi", "pp", ST_GeomFromText("POINT(38.100000 64.850000)"))' failed with wrong errno 1366: 'Incorrect LINESTRING value: 'POINT' for column 'line' at row 1', instead of 1416...
 
The result from queries just before the failure was:
< snip >
("Qalaat Aades", "pp", ST_GeomFromText("POINT(33.503333 35.377500)")),
("A ad'ino", "pp", ST_GeomFromText("POINT(54.812222 38.209167)")),
("Aadi Noia", "pp", ST_GeomFromText("POINT(13.800000 39.833333)")),
("Aad La Macta", "pp", ST_GeomFromText("POINT(35.779444 -0.129167)")),
("Aadland", "pp", ST_GeomFromText("POINT(60.366667 5.483333)")),
("Aadliye", "pp", ST_GeomFromText("POINT(33.366667 36.333333)")),
("Aadloun", "pp", ST_GeomFromText("POINT(33.403889 35.273889)")),
("Aadma", "pp", ST_GeomFromText("POINT(58.798333 22.663889)")),
("Aadma Asundus", "pp", ST_GeomFromText("POINT(58.798333 22.663889)")),
("Aadmoun", "pp", ST_GeomFromText("POINT(34.150000 35.650000)")),
("Aadneram", "pp", ST_GeomFromText("POINT(59.016667 6.933333)")),
("Aadneskaar", "pp", ST_GeomFromText("POINT(58.083333 6.983333)")),
("Aadorf", "pp", ST_GeomFromText("POINT(47.483333 8.900000)")),
("Aadorp", "pp", ST_GeomFromText("POINT(52.366667 6.633333)")),
("Aadouane", "pp", ST_GeomFromText("POINT(32.816667 35.983333)")),
("Aadoui", "pp", ST_GeomFromText("POINT(34.450000 35.983333)")),
("Aadouiye", "pp", ST_GeomFromText("POINT(34.583333 36.183333)")),
("Aadouss", "pp", ST_GeomFromText("POINT(33.512500 35.601389)")),
("Aadra", "pp", ST_GeomFromText("POINT(33.616667 36.500000)")),
("Aadzi", "pp", ST_GeomFromText("POINT(38.100000 64.850000)"));
 

CURRENT_TEST: innodb_gis.rtree_recovery
--- /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/rtree_recovery.result	2017-11-03 13:14:53.682078000 +0100
+++ /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/rtree_recovery.reject	2017-11-15 17:03:16.049083660 +0100
@@ -32,10 +32,9 @@
 test.t1	check	status	OK
 select count(*) from t1;
 count(*)
-18
+17
 select c1, ST_astext(c2) from t1;
 c1	ST_astext(c2)
-350	POINT(10350 10350)
 351	POINT(10351 10351)
 352	POINT(10352 10352)
 353	POINT(10353 10353)
 
mysqltest: Result length mismatch

CURRENT_TEST: innodb_gis.rtree_search
--- /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/rtree_search.result	2017-10-27 11:03:38.236532000 +0200
+++ /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/rtree_search.reject	2017-11-15 17:03:29.053077906 +0100
@@ -14,19 +14,19 @@
 set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))');
 select count(*) from t1 where MBRWithin(t1.c2, @g1);
 count(*)
-999
+1000
 set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
 select count(*) from t1 where MBRWithin(t1.c2, @g1);
 count(*)
-99
+100
 set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
 select count(*) from t1 where MBRWithin(t1.c2, @g1);
 count(*)
-789
+791
 set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))');
 select count(*) from t1 where MBRWithin(t1.c2, @g1);
 count(*)
-699
+701
 set @g1 =  ST_GeomFromText('Point(1 1)');
 select count(*) from t1 where MBRequals(t1.c2, @g1);
 count(*)
 
mysqltest: Result length mismatch
 

CURRENT_TEST: innodb_gis.bug16266012
mysqltest: At line 10: query 'SELECT ST_WITHIN( LINESTRINGFROMTEXT('  LINESTRING( 5 9 , 3 4 , 4 1 , 4
4 , 4 9 ) ') , ST_SYMDIFFERENCE( ST_UNION( ST_ENVELOPE( POLYGONFROMTEXT('
POLYGON( ( 3 2 , 0 6 , 2 3 , 8 0 , 4 6 , 7 2 , 3 2 ) ) ') ) ,
MULTIPOLYGONFROMTEXT('
MULTIPOLYGON( ( ( 0 0 , 7 1 , 6 8 , 0 0 ) ) , ( ( 9 9 , 4 0 , 4 7 , 9 9) ) )
') ) , ST_SYMDIFFERENCE( POLYGONFROMTEXT('  POLYGON( ( 9 9 , 6 5 , 2 3 , 9 9
) ) ') , MULTIPOLYGONFROMTEXT('  MULTIPOLYGON( ( ( 2 2 , 5 2 , 5 2 , 2 6 , 2
2 ) ) , ( ( 7 7 , 3 7 , 2 9 , 7 1 , 7 7 ) ) ) ') ) ) )' succeeded - should have failed with errno 3040...
 
The result from queries just before the failure was:
SELECT ST_WITHIN( LINESTRINGFROMTEXT('  LINESTRING( 5 9 , 3 4 , 4 1 , 4
4 , 4 9 ) ') , ST_SYMDIFFERENCE( ST_UNION( ST_ENVELOPE( POLYGONFROMTEXT('
POLYGON( ( 3 2 , 0 6 , 2 3 , 8 0 , 4 6 , 7 2 , 3 2 ) ) ') ) ,
MULTIPOLYGONFROMTEXT('
MULTIPOLYGON( ( ( 0 0 , 7 1 , 6 8 , 0 0 ) ) , ( ( 9 9 , 4 0 , 4 7 , 9 9) ) )
') ) , ST_SYMDIFFERENCE( POLYGONFROMTEXT('  POLYGON( ( 9 9 , 6 5 , 2 3 , 9 9
) ) ') , MULTIPOLYGONFROMTEXT('  MULTIPOLYGON( ( ( 2 2 , 5 2 , 5 2 , 2 6 , 2
2 ) ) , ( ( 7 7 , 3 7 , 2 9 , 7 1 , 7 7 ) ) ) ') ) ) );

 
innodb_gis.point_big 'innodb'            w3 [ fail ]
        Test ended at 2017-11-15 17:05:36
 
CURRENT_TEST: innodb_gis.point_big
--- /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/point_big.result	2017-10-27 11:03:38.232532000 +0200
+++ /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/point_big.reject	2017-11-15 17:05:35.425018697 +0100
@@ -259,10 +259,8 @@
 (ST_PointFromText('POINT(32.1234 64.2468)'), ST_PointFromText('POINT(-1 -1)'));
 'The ORDER BY for spatial index will use filesort'
 EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2;
-id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
-1	SIMPLE	gis_point	NULL	ALL	NULL	NULL	NULL	NULL	#	100.00	Using filesort
-Warnings:
-Note	1003	/* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` order by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2`
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	SIMPLE	gis_point	ALL	NULL	NULL	NULL	NULL	13	#
 SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2;
 ST_AsText(p1)	ST_AsText(p2)
 POINT(2 4)	POINT(-2 -6)
@@ -350,13 +348,17 @@
 1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1;
 COUNT(*)	ST_AsText(p1)
+1024	POINT(2 4)
 1024	POINT(3 6)
 1024	POINT(4 8)
+1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2;
 COUNT(*)	ST_AsText(p2)
+1024	POINT(0 0)
 1024	POINT(-2 -6)
 1024	POINT(-3 -9)
 1024	POINT(-4 -12)
+1024	POINT(-5 -15)
 1024	POINT(-1 -3)
 1024	POINT(-1 -1)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2;
@@ -368,10 +370,13 @@
 1024	POINT(32.1234 64.2468)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
+1024	POINT(3 6)	POINT(-3 -9)
 1024	POINT(4 8)	POINT(-4 -12)
 1024	POINT(5 10)	POINT(-5 -15)
 1024	POINT(6 12)	POINT(-6 -18)
 1024	POINT(7 14)	POINT(-7 -21)
+1024	POINT(8 16)	POINT(0 0)
+1024	POINT(10 21)	POINT(-6 3)
 1024	POINT(20.5 41)	POINT(-8 4)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
@@ -420,12 +425,16 @@
 SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1;
 COUNT(*)	ST_AsText(p1)
 1024	POINT(20.5 41)
+14	POINT(20.5 43.9832)
 1024	POINT(32.1234 64.2468)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE MBRWithin(p2, @poly2) GROUP BY p2;
 COUNT(*)	ST_AsText(p2)
+1024	POINT(0 0)
+14	POINT(-0 0)
 1024	POINT(-2 -6)
 1024	POINT(-3 -9)
 1024	POINT(-4 -12)
+1024	POINT(-5 -15)
 1024	POINT(-1 -3)
 1024	POINT(-1 -1)
 DROP TABLE p;
@@ -518,13 +527,17 @@
 1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1;
 COUNT(*)	ST_AsText(p1)
+1024	POINT(2 4)
 1024	POINT(3 6)
 1024	POINT(4 8)
+1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2;
 COUNT(*)	ST_AsText(p2)
+2	POINT(0 0)
 1024	POINT(-2 -6)
 1024	POINT(-3 -9)
 1024	POINT(-4 -12)
+1024	POINT(-5 -15)
 1024	POINT(-1 -3)
 1024	POINT(-1 -1)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2;
@@ -536,10 +549,13 @@
 1024	POINT(32.1234 64.2468)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
+1024	POINT(3 6)	POINT(-3 -9)
 1024	POINT(4 8)	POINT(-4 -12)
 1024	POINT(5 10)	POINT(-5 -15)
 1024	POINT(6 12)	POINT(-6 -18)
 1024	POINT(7 14)	POINT(-7 -21)
+2	POINT(8 16)	POINT(0 0)
+1024	POINT(10 21)	POINT(-6 3)
 1024	POINT(20.5 41)	POINT(-8 4)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
 
mysqltest: Result length mismatch

 
innodb_gis.rtree_split 'innodb'          w1 [ fail ]
        Test ended at 2017-11-15 17:09:07
 
CURRENT_TEST: innodb_gis.rtree_split
--- /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/rtree_split.result	2017-10-30 13:45:11.014042000 +0100
+++ /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/rtree_split.reject	2017-11-15 17:09:07.552923286 +0100
@@ -80,5 +80,5 @@
 set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
 select count(*) from t1 where MBRWithin(t1.c2, @g1);
 count(*)
-57344
+65536
 drop table t1;
 
mysqltest: Result content mismatch

CURRENT_TEST: innodb_gis.gis_split_nan
mysqltest: At line 285: query 'INSERT INTO geom_index SELECT * FROM gis_geometrycollection' failed: 1416: Cannot get geometry object from data you send to the GEOMETRY field
 
The result from queries just before the failure was:
< snip >
                                                                      'LINESTRING(0 0,10 10),'
                                                                      'GEOMETRYCOLLECTION('
                                                                            'GEOMETRYCOLLECTION())),'
                                                                'GEOMETRYCOLLECTION(),'
                                                                'GEOMETRYCOLLECTION('
                                                                       'GEOMETRYCOLLECTION()),'
                                                                'POLYGON((0 0,0 10,10 10,10 0,0 0)),'
                                                                'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),'
                                                                'MULTILINESTRING((0 0,10 10),(0 10,10 0)),'
                                                                'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))'))));
# Creating a table with spatial index column
CREATE TABLE geom_index (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY NOT NULL, SPATIAL INDEX(g));
# Inserting geometry values
INSERT INTO geom_index SELECT * FROM gis_point;
INSERT INTO geom_index SELECT * FROM gis_linestring;
INSERT INTO geom_index SELECT * FROM gis_polygon;
INSERT INTO geom_index SELECT * FROM gis_multi_point;
INSERT INTO geom_index SELECT * FROM gis_multi_linestring;
INSERT INTO geom_index SELECT * FROM gis_multi_polygon;
INSERT INTO geom_index SELECT * FROM gis_geometrycollection;

CURRENT_TEST: innodb_gis.point_big
--- /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/point_big.result	2017-10-27 11:03:38.232532000 +0200
+++ /home/alice/aliska/bb-10.2-alice/mysql-test/suite/innodb_gis/r/point_big.reject	2017-11-15 17:26:53.652478027 +0100
@@ -259,10 +259,8 @@
 (ST_PointFromText('POINT(32.1234 64.2468)'), ST_PointFromText('POINT(-1 -1)'));
 'The ORDER BY for spatial index will use filesort'
 EXPLAIN SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2;
-id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
-1	SIMPLE	gis_point	NULL	ALL	NULL	NULL	NULL	NULL	#	100.00	Using filesort
-Warnings:
-Note	1003	/* select#1 */ select st_astext(`test`.`gis_point`.`p1`) AS `ST_AsText(p1)`,st_astext(`test`.`gis_point`.`p2`) AS `ST_AsText(p2)` from `test`.`gis_point` order by `test`.`gis_point`.`p1`,`test`.`gis_point`.`p2`
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	SIMPLE	gis_point	ALL	NULL	NULL	NULL	NULL	13	#
 SELECT ST_AsText(p1), ST_AsText(p2) FROM gis_point ORDER BY p1, p2;
 ST_AsText(p1)	ST_AsText(p2)
 POINT(2 4)	POINT(-2 -6)
@@ -350,13 +348,17 @@
 1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1;
 COUNT(*)	ST_AsText(p1)
+1024	POINT(2 4)
 1024	POINT(3 6)
 1024	POINT(4 8)
+1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2;
 COUNT(*)	ST_AsText(p2)
+1024	POINT(0 0)
 1024	POINT(-2 -6)
 1024	POINT(-3 -9)
 1024	POINT(-4 -12)
+1024	POINT(-5 -15)
 1024	POINT(-1 -3)
 1024	POINT(-1 -1)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2;
@@ -368,10 +370,13 @@
 1024	POINT(32.1234 64.2468)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
+1024	POINT(3 6)	POINT(-3 -9)
 1024	POINT(4 8)	POINT(-4 -12)
 1024	POINT(5 10)	POINT(-5 -15)
 1024	POINT(6 12)	POINT(-6 -18)
 1024	POINT(7 14)	POINT(-7 -21)
+1024	POINT(8 16)	POINT(0 0)
+1024	POINT(10 21)	POINT(-6 3)
 1024	POINT(20.5 41)	POINT(-8 4)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
@@ -420,12 +425,16 @@
 SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE ST_TOUCHES(@poly3, p1) AND MBRWithin(p2, @poly4) GROUP BY p1;
 COUNT(*)	ST_AsText(p1)
 1024	POINT(20.5 41)
+14	POINT(20.5 43.9832)
 1024	POINT(32.1234 64.2468)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE MBRWithin(p2, @poly2) GROUP BY p2;
 COUNT(*)	ST_AsText(p2)
+1024	POINT(0 0)
+14	POINT(-0 0)
 1024	POINT(-2 -6)
 1024	POINT(-3 -9)
 1024	POINT(-4 -12)
+1024	POINT(-5 -15)
 1024	POINT(-1 -3)
 1024	POINT(-1 -1)
 DROP TABLE p;
@@ -518,13 +527,17 @@
 1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p1) FROM gis_point WHERE MBRWithin(p1, @poly1) GROUP BY p1;
 COUNT(*)	ST_AsText(p1)
+1024	POINT(2 4)
 1024	POINT(3 6)
 1024	POINT(4 8)
+1024	POINT(5 10)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@poly2, p2) GROUP BY p2;
 COUNT(*)	ST_AsText(p2)
+2	POINT(0 0)
 1024	POINT(-2 -6)
 1024	POINT(-3 -9)
 1024	POINT(-4 -12)
+1024	POINT(-5 -15)
 1024	POINT(-1 -3)
 1024	POINT(-1 -1)
 SELECT COUNT(*), ST_AsText(p2) FROM gis_point WHERE ST_Equals(p2, @p1) GROUP BY p2;
@@ -536,10 +549,13 @@
 1024	POINT(32.1234 64.2468)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
+1024	POINT(3 6)	POINT(-3 -9)
 1024	POINT(4 8)	POINT(-4 -12)
 1024	POINT(5 10)	POINT(-5 -15)
 1024	POINT(6 12)	POINT(-6 -18)
 1024	POINT(7 14)	POINT(-7 -21)
+2	POINT(8 16)	POINT(0 0)
+1024	POINT(10 21)	POINT(-6 3)
 1024	POINT(20.5 41)	POINT(-8 4)
 SELECT COUNT(*), ST_AsText(p1), ST_AsText(p2) FROM gis_point WHERE ST_Contains(@mpoly, p1) AND NOT MBRWithin(p1, @mpoly) GROUP BY p1, p2;
 COUNT(*)	ST_AsText(p1)	ST_AsText(p2)
 
mysqltest: Result length mismatch

CURRENT_TEST: innodb_gis.bug16236208
mysqltest: At line 51: query 'SELECT ST_AsText(linestring_nokey) FROM linestring FORCE KEY (
linestring_key ) WHERE ST_CONTAINS( ST_GeomFromText('POLYGON( ( 3923 2815 , 4246
2122 , 4028 2971 , 4017 3019 , 3923 2815 ) )') , linestring_key ) AND
ST_WITHIN( ST_GeomFromText('POLYGON( ( 4135 3009 , 4914 3087 , 4236 3194 , 4091
3036 , 4022 3004 , 4087 3004 , 3853 2825 , 3490 3118 , 3784 3141 , 4052 3072
, 4205 2787 , 4024 2951 , 4076 3036 , 4041 3053 , 3789 3401 , 4080 3100 ,
4169 2867 , 4056 3029 , 4715 3943 , 4052 3098 , 4035 3080 , 4013 3077 , 4218
2915 , 3789 2980 , 4058 3046 , 4042 3043 , 4135 3009 ) )') , linestring_nokey
) AND ST_CONTAINS( ST_GeomFromText('POLYGON( ( 4082 2842 , 3678 3647 , 3420 3068
, 4018 3030 , 4082 2842 ) )') , linestring_key ) OR ST_INTERSECTS(
ST_GeomFromText('MULTILINESTRING( ( 4147 2871 , 4072 3042 , 4081 3099 , 3796
3021 , 4007 3463 ) , ( 4042 2808 , 4109 2816 , 3730 3673 ) )') ,
linestring_key ) AND ST_Length( linestring_nokey ) > 1' succeeded - should have failed with errno 3037...
 
The result from queries just before the failure was:
< snip >
ST_GeomFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73
9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'));
INSERT INTO linestring (pk, linestring_key, linestring_nokey) VALUES (7,
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'),
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'));
CREATE INDEX linestring_index ON linestring(linestring_nokey(5));
ALTER TABLE linestring ADD  KEY (linestring_key(5));
SELECT ST_AsText(linestring_nokey) FROM linestring FORCE KEY (
linestring_key ) WHERE ST_CONTAINS( ST_GeomFromText('POLYGON( ( 3923 2815 , 4246
2122 , 4028 2971 , 4017 3019 , 3923 2815 ) )') , linestring_key ) AND
ST_WITHIN( ST_GeomFromText('POLYGON( ( 4135 3009 , 4914 3087 , 4236 3194 , 4091
3036 , 4022 3004 , 4087 3004 , 3853 2825 , 3490 3118 , 3784 3141 , 4052 3072
, 4205 2787 , 4024 2951 , 4076 3036 , 4041 3053 , 3789 3401 , 4080 3100 ,
4169 2867 , 4056 3029 , 4715 3943 , 4052 3098 , 4035 3080 , 4013 3077 , 4218
2915 , 3789 2980 , 4058 3046 , 4042 3043 , 4135 3009 ) )') , linestring_nokey
) AND ST_CONTAINS( ST_GeomFromText('POLYGON( ( 4082 2842 , 3678 3647 , 3420 3068
, 4018 3030 , 4082 2842 ) )') , linestring_key ) OR ST_INTERSECTS(
ST_GeomFromText('MULTILINESTRING( ( 4147 2871 , 4072 3042 , 4081 3099 , 3796
3021 , 4007 3463 ) , ( 4042 2808 , 4109 2816 , 3730 3673 ) )') ,
linestring_key ) AND ST_Length( linestring_nokey ) > 1;

CURRENT_TEST: innodb_gis.geometry
mysqltest: At line 190: query 'EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)')' succeeded - should have failed with errno 1210...
 
The result from queries just before the failure was:
< snip >
#check index with  WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab
WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')));
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	tab	ref	idx3	idx3	8	const	1	#
#check index with  WKT function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	tab	const	idx2	idx2	8	const	1	#
#check index with  WKB function
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
FROM tab
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	tab	const	idx2	idx2	8	const	1	#
#check range predicate on the index columns
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
 
More results from queries before failure can be found in /home/alice/aliska/bb-10.2-alice/mysql-test/var/log/geometry.log



 Comments   
Comment by Marko Mäkelä [ 2021-10-25 ]

This was closed as MDEV-14057.

Generated at Thu Feb 08 08:13:18 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.