mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| SET default_storage_engine=InnoDB;
 | |
| DROP TABLE IF EXISTS t1;
 | |
| CREATE TABLE t1 (
 | |
| fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 | |
| g GEOMETRY NOT NULL,
 | |
| KEY gis_key(g(5))
 | |
| ) ENGINE=InnoDB;
 | |
| SHOW CREATE TABLE t1;
 | |
| Table	Create Table
 | |
| t1	CREATE TABLE `t1` (
 | |
|   `fid` int(11) NOT NULL AUTO_INCREMENT,
 | |
|   `g` geometry NOT NULL,
 | |
|   PRIMARY KEY (`fid`),
 | |
|   KEY `gis_key` (`g`(5))
 | |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
 | |
| SELECT count(*) FROM t1;
 | |
| count(*)
 | |
| 150
 | |
| ANALYZE TABLE t1;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| test.t1	analyze	status	Engine-independent statistics collected
 | |
| test.t1	analyze	status	OK
 | |
| EXPLAIN SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 140))'));
 | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 | |
| 1	SIMPLE	t1	ALL	gis_key	NULL	NULL	NULL	#	Using where
 | |
| SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))')) ORDER BY fid;
 | |
| fid	ST_AsText(g)
 | |
| 1	LINESTRING(150 150,150 150)
 | |
| 2	LINESTRING(149 149,151 151)
 | |
| 3	LINESTRING(148 148,152 152)
 | |
| 4	LINESTRING(147 147,153 153)
 | |
| 5	LINESTRING(146 146,154 154)
 | |
| 6	LINESTRING(145 145,155 155)
 | |
| 7	LINESTRING(144 144,156 156)
 | |
| 8	LINESTRING(143 143,157 157)
 | |
| 9	LINESTRING(142 142,158 158)
 | |
| 10	LINESTRING(141 141,159 159)
 | |
| 11	LINESTRING(140 140,160 160)
 | |
| DROP TABLE t1;
 | |
| CREATE TABLE t1 (
 | |
| fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 | |
| g GEOMETRY NOT NULL
 | |
| ) ENGINE=InnoDB;
 | |
| ALTER TABLE t1 ADD SPATIAL KEY(g);
 | |
| SHOW CREATE TABLE t1;
 | |
| Table	Create Table
 | |
| t1	CREATE TABLE `t1` (
 | |
|   `fid` int(11) NOT NULL AUTO_INCREMENT,
 | |
|   `g` geometry NOT NULL,
 | |
|   PRIMARY KEY (`fid`),
 | |
|   SPATIAL KEY `g` (`g`)
 | |
| ) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
 | |
| SELECT count(*) FROM t1;
 | |
| count(*)
 | |
| 100
 | |
| SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g,
 | |
| ST_GeomFromText('Polygon((40 40,60 40,60 60,40 40))')) ORDER BY fid;
 | |
| fid	ST_AsText(g)
 | |
| 45	LINESTRING(51 51,60 60)
 | |
| 46	LINESTRING(51 41,60 50)
 | |
| 56	LINESTRING(41 41,50 50)
 | |
| DROP TABLE t1;
 | |
| End of 5.5 tests.
 | 
