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.
Jan Lindström (Inactive)
added a comment -
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.
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
Jan Lindström (Inactive)
added a comment -
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
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
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
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
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
-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/'
Jan Lindström (Inactive)
added a comment -
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/'
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/'
Jan Lindström (Inactive)
added a comment -
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/'
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/'
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...
Marko Mäkelä
added a comment - 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.
Marko Mäkelä
added a comment - 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:
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,
Marko Mäkelä
added a comment - 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/'