Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL)
-
None
-
10.1.31, 10.2.13, 10.2.14
Description
You need to checkout branch bb-10.2-MDEV-13626. Following test that are now disabled fail on innodb_gis suite:
- gis_split_inf
- row_format
- rtree_estimate
- rtree_multi_pk
- tree_search
- point_big
- geometry
- bug17057168
- bug16236208
- bug16266012
- rtree_search :
- rtree_old
Attachments
Issue Links
- is duplicated by
-
MDEV-14406 Review and fix tests from innodb_gis suite
-
- Closed
-
- relates to
-
MDEV-14059 InnoDB assertion failure offset >= ((38U + 36 + 2 * 10) + 5) at page0page.h line 318
-
- Closed
-
-
MDEV-21924 Clean up InnoDB GIS record comparison
-
- Closed
-
-
MDEV-15284 innodb_gis.rtree_concurrent_srch fails with COUNT(*) mismatch
-
- Confirmed
-
Activity
innodb_gis.row_format '16k,innodb' [ fail ]
|
Test ended at 2017-10-12 16:45:17
|
|
CURRENT_TEST: innodb_gis.row_format
|
--- /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/row_format.result 2017-10-12 16:25:47.206903327 +0300
|
+++ /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/row_format.reject 2017-10-12 16:45:16.869871507 +0300
|
@@ -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
|
|
- saving '/dev/shm/log/innodb_gis.row_format-16k,innodb/' to '/dev/shm/log/innodb_gis.row_format-16k,innodb/'
|
|
Only 1 of 4 completed.
|
innodb_gis.rtree_estimate 'innodb' [ fail ]
|
Test ended at 2017-10-12 16:47:00
|
|
CURRENT_TEST: innodb_gis.rtree_estimate
|
--- /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/rtree_estimate.result 2017-10-12 16:25:47.210903334 +0300
|
+++ /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/rtree_estimate.reject 2017-10-12 16:47:00.678100496 +0300
|
@@ -6,10 +6,8 @@
|
SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))');
|
SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))');
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL ALL g NULL NULL NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 ALL g NULL NULL NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
ST_AsText(g)
|
INSERT INTO t1 VALUES(@g1);
|
@@ -24,135 +22,105 @@
|
Table Op Msg_type Msg_text
|
test.t1 analyze status OK
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
ST_AsText(g)
|
POINT(10 10)
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g1`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 2 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
ST_AsText(g)
|
POINT(10 10)
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g1`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
ST_AsText(g)
|
POINT(10 10)
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g1`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
ST_AsText(g)
|
POINT(10 10)
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g1`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
ST_AsText(g)
|
POINT(10 10)
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g2`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g2`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g2`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 1 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g2`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 2 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g2`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 range g g 34 NULL 2 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g3`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g3`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g3`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g3`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
ST_AsText(g)
|
POINT(10 10)
|
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
|
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g3`))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
ST_AsText(g)
|
POINT(10 10)
|
|
mysqltest: Result length mismatch
|
innodb_gis.rtree_multi_pk 'innodb' [ fail ]
|
Test ended at 2017-10-12 16:51:53
|
|
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_search 'innodb' [ fail ]
|
Test ended at 2017-10-12 16:53:19
|
|
CURRENT_TEST: innodb_gis.rtree_search
|
--- /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/rtree_search.result 2017-10-12 16:25:47.214903342 +0300
|
+++ /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/rtree_search.reject 2017-10-12 16:53:19.418905827 +0300
|
@@ -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
|
|
- saving '/dev/shm/log/innodb_gis.rtree_search-innodb/' to '/dev/shm/log/innodb_gis.rtree_search-innodb/'
|
innodb_gis.point_big 'innodb' [ fail ]
|
Test ended at 2017-10-12 16:56:09
|
|
CURRENT_TEST: innodb_gis.point_big
|
--- /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/point_big.result 2017-10-12 16:25:47.206903327 +0300
|
+++ /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/point_big.reject 2017-10-12 16:56:09.735257843 +0300
|
@@ -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.00Using 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
|
|
- saving '/dev/shm/log/innodb_gis.point_big-innodb/' to '/dev/shm/log/innodb_gis.point_big-innodb/'
|
innodb_gis.geometry 'innodb' [ fail ]
|
Test ended at 2017-10-12 16:58:30
|
|
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 /dev/shm/log/geometry.log
|
|
- saving '/dev/shm/log/innodb_gis.geometry-innodb/' to '/dev/shm/log/innodb_gis.geometry-innodb/'
|
innodb_gis.bug17057168 'innodb' [ fail ]
|
Test ended at 2017-10-12 16:59:34
|
|
CURRENT_TEST: innodb_gis.bug17057168
|
--- /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/bug17057168.result 2017-10-12 16:25:47.202903320 +0300
|
+++ /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/bug17057168.reject 2017-10-12 16:59:33.883674788 +0300
|
@@ -12,10 +12,8 @@
|
tmp tmp2 ORDER BY tmp1.id, tmp2.id;
|
EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1,
|
2);
|
-id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
-1 SIMPLE t1 NULL ref location location 28 const 1 100.00 Using where
|
-Warnings:
|
-Note 1003 /* select#1 */ select `geotest`.`t1`.`id` AS `id`,st_astext(`geotest`.`t1`.`location`) AS `ST_AsText(location)` from `geotest`.`t1` where (`geotest`.`t1`.`location` = <cache>(point(1,2)))
|
+id select_type table type possible_keys key key_len ref rows Extra
|
+1 SIMPLE t1 ref location location 28 const 1 Using where
|
SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2);
|
id ST_AsText(location)
|
163 POINT(1 2)
|
|
mysqltest: Result length mismatch
|
|
- saving '/dev/shm/log/innodb_gis.bug17057168-innodb/' to '/dev/shm/log/innodb_gis.bug17057168-innodb/'
|
--------------------------------------------------------------------------
|
The servers were restarted 0 times
|
Spent 0.000 of 10 seconds executing testcases
|
|
Failure: Failed 1/1 tests, 0.00% were successful.
|
|
Failing test(s): innodb_gis.bug17057168
|
innodb_gis.bug16236208 'innodb' [ fail ]
|
Test ended at 2017-10-12 17:00:30
|
|
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;
|
|
More results from queries before failure can be found in /dev/shm/log/bug16236208.log
|
|
innodb_gis.bug16266012 [ fail ]
|
Test ended at 2017-10-12 17:01:54
|
|
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.rtree_search 'innodb' [ fail ]
|
Test ended at 2017-10-12 17:03:37
|
|
CURRENT_TEST: innodb_gis.rtree_search
|
--- /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/rtree_search.result 2017-10-12 16:25:47.214903342 +0300
|
+++ /home/jan/mysql/10.2-orig/mysql-test/suite/innodb_gis/r/rtree_search.reject 2017-10-12 17:03:37.492182676 +0300
|
@@ -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
|
|
- saving '/dev/shm/log/innodb_gis.rtree_search-innodb/' to '/dev/shm/log/innodb_gis.rtree_search-innodb/'
|
innodb_gis.rtree_old 'innodb' [ fail ]
|
Test ended at 2017-10-12 17:05:36
|
|
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)"));
|
|
More results from queries before failure can be found in /dev/shm/log/rtree_old.log
|
|
- saving '/dev/shm/log/innodb_gis.rtree_old-innodb/' to '/dev/shm/log/innodb_gis.rtree_old-innodb/'
|
I cleaned up most of the tests. There were some minor result differences.
The remaining failures are mostly behaviour differences. I suspect that the geometry functions in MariaDB are sloppier than those in MySQL. Here is one example of an invalid (zero-area) triangle that MySQL would reject but MariaDB would accept:
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...
|
See also the dubious debug code change in that I had to add back in MDEV-14059 to get the innodb_gis.rtree_concurrent_srch test to pass, most of the time.
The test would appear to expose a race condition between SELECT and ROLLBACK. Occasionally the test does return a different result for COUNT.
While adding some assertions to InnoDB in MDEV-21924, I found out that TABLE_SHARE::init_from_binary_frm_image() is calculating the MBR length as 34 bytes:
key_part->key_part_flag|= field->key_part_flag();
|
uint16 key_part_length_bytes= field->key_part_length_bytes();
|
key_part->store_length+= key_part_length_bytes;
|
keyinfo->key_length+= key_part_length_bytes;
|
InnoDB does not expect adding any key_part_length_bytes. It internally stores 32 bytes (DATA_MBR_LEN = SPDIMS * 2 * sizeof(double)).
In cmp_dtuple_rec_with_gis(), I wrote a comment about this:
int cmp_dtuple_rec_with_gis(const dtuple_t *dtuple, const rec_t *rec, |
page_cur_mode_t mode)
|
{
|
const dfield_t *dtuple_field= dtuple_get_nth_field(dtuple, 0); |
/* FIXME: TABLE_SHARE::init_from_binary_frm_image() is adding |
field->key_part_length_bytes() to the key length */
|
ut_ad(dfield_get_len(dtuple_field) == DATA_MBR_LEN ||
|
dfield_get_len(dtuple_field) == DATA_MBR_LEN + 2);
|
|
return cmp_gis_field(mode, dfield_get_data(dtuple_field), rec); |
}
|
innodb_gis.gis_split_inf 'innodb' [ fail ]
Test ended at 2017-10-12 16:36:11
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))))) ) ;
- saving '/dev/shm/log/innodb_gis.gis_split_inf-innodb/' to '/dev/shm/log/innodb_gis.gis_split_inf-innodb/'