1# 2# BUG#21245805 HA_INNOBASE::RECORDS_IN_RANGE() RETURNS CONSTANT FOR SPATIAL INDEXES 3# 4 5--source include/have_innodb.inc 6--source include/have_debug.inc 7 8CREATE TABLE t1 ( 9 g GEOMETRY NOT NULL 10) ENGINE=InnoDB; 11 12ALTER TABLE t1 ADD SPATIAL(g); 13 14SET @g1 = ST_GeomFromText('POINT(10 10)'); 15SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))'); 16SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))'); 17 18 19# Test empty table 20EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); 21SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); 22 23# Insert gis data 24INSERT INTO t1 VALUES(@g1); 25INSERT INTO t1 VALUES(@g2); 26INSERT INTO t1 VALUES(@g3); 27 28SELECT ST_AsText(g) FROM t1; 29 30ANALYZE TABLE t1; 31 32# Test g1 33EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); 34SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); 35 36EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1); 37SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); 38 39EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1); 40SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); 41 42EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1); 43SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); 44 45EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); 46SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); 47 48# Test g2 49EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2); 50SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); 51 52EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2); 53SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); 54 55EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2); 56SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); 57 58EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2); 59SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); 60 61EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); 62SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); 63 64# Test g3 65EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3); 66SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); 67 68EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3); 69SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); 70 71EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3); 72SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); 73 74EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3); 75SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); 76 77EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); 78SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); 79 80DROP TABLE t1; 81