mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 20:36:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
DROP TABLE IF EXISTS t1;
 | 
						|
CREATE TABLE t1 (
 | 
						|
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 | 
						|
g GEOMETRY NOT NULL,
 | 
						|
SPATIAL KEY(g)
 | 
						|
) ENGINE=MyISAM;
 | 
						|
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=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
 | 
						|
SELECT count(*) FROM t1;
 | 
						|
count(*)
 | 
						|
150
 | 
						|
EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, 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	range	g	g	34	NULL	8	Using where
 | 
						|
SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
 | 
						|
fid	AsText(g)
 | 
						|
1	LINESTRING(150 150,150 150)
 | 
						|
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)
 | 
						|
2	LINESTRING(149 149,151 151)
 | 
						|
DROP TABLE t1;
 | 
						|
CREATE TABLE t1 (
 | 
						|
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 | 
						|
g GEOMETRY NOT NULL
 | 
						|
) ENGINE=MyISAM;
 | 
						|
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=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
 | 
						|
SELECT count(*) FROM t1;
 | 
						|
count(*)
 | 
						|
100
 | 
						|
EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, 
 | 
						|
GeomFromText('Polygon((40 40,60 40,60 60,40 40))'));
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 | 
						|
1	SIMPLE	t1	range	g	g	34	NULL	4	Using where
 | 
						|
SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, 
 | 
						|
GeomFromText('Polygon((40 40,60 40,60 60,40 40))'));
 | 
						|
fid	AsText(g)
 | 
						|
46	LINESTRING(51 41,60 50)
 | 
						|
56	LINESTRING(41 41,50 50)
 | 
						|
45	LINESTRING(51 51,60 60)
 | 
						|
DROP TABLE t1;
 | 
						|
End of 5.5 tests.
 | 
						|
CREATE TABLE t1 (
 | 
						|
coordinate point NOT NULL,
 | 
						|
SPATIAL KEY coordinate (coordinate)
 | 
						|
) ENGINE=Aria DEFAULT CHARSET=ascii PAGE_CHECKSUM=1;
 | 
						|
SHOW COLUMNS FROM t1;
 | 
						|
Field	Type	Null	Key	Default	Extra
 | 
						|
coordinate	point	NO	MUL	NULL	
 | 
						|
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 0)"));
 | 
						|
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 0)"));
 | 
						|
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 10)"));
 | 
						|
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 10)"));
 | 
						|
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(5 5)"));
 | 
						|
SELECT astext(coordinate) FROM t1 WHERE ST_Intersects(ST_LineFromText("LINESTRING(0 0, 10 0, 10 10, 0 10)"), coordinate);
 | 
						|
astext(coordinate)
 | 
						|
POINT(0 0)
 | 
						|
POINT(10 0)
 | 
						|
POINT(10 10)
 | 
						|
POINT(0 10)
 | 
						|
SHOW COLUMNS FROM t1;
 | 
						|
Field	Type	Null	Key	Default	Extra
 | 
						|
coordinate	point	NO	MUL	NULL	
 | 
						|
DROP TABLE t1;
 |