1
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
2
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
3
CREATE TABLE gis_line (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
4
CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
5
CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT);
6
CREATE TABLE gis_multi_line (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING);
7
CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON);
8
CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION);
9
CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
10
SHOW FIELDS FROM gis_point;
11
Field Type Null Key Default Extra
12
fid int(11) NO PRI NULL
14
SHOW FIELDS FROM gis_line;
15
Field Type Null Key Default Extra
16
fid int(11) NO PRI NULL
18
SHOW FIELDS FROM gis_polygon;
19
Field Type Null Key Default Extra
20
fid int(11) NO PRI NULL
22
SHOW FIELDS FROM gis_multi_point;
23
Field Type Null Key Default Extra
24
fid int(11) NO PRI NULL
26
SHOW FIELDS FROM gis_multi_line;
27
Field Type Null Key Default Extra
28
fid int(11) NO PRI NULL
29
g multilinestring YES NULL
30
SHOW FIELDS FROM gis_multi_polygon;
31
Field Type Null Key Default Extra
32
fid int(11) NO PRI NULL
33
g multipolygon YES NULL
34
SHOW FIELDS FROM gis_geometrycollection;
35
Field Type Null Key Default Extra
36
fid int(11) NO PRI NULL
37
g geometrycollection YES NULL
38
SHOW FIELDS FROM gis_geometry;
39
Field Type Null Key Default Extra
40
fid int(11) NO PRI NULL
42
INSERT INTO gis_point VALUES
43
(101, PointFromText('POINT(10 10)')),
44
(102, PointFromText('POINT(20 10)')),
45
(103, PointFromText('POINT(20 20)')),
46
(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
47
INSERT INTO gis_line VALUES
48
(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
49
(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
50
(107, LineStringFromWKB(AsWKB(LineString(Point(10, 10), Point(40, 10)))));
51
INSERT INTO gis_polygon VALUES
52
(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
53
(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
54
(110, PolyFromWKB(AsWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0))))));
55
INSERT INTO gis_multi_point VALUES
56
(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
57
(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
58
(113, MPointFromWKB(AsWKB(MultiPoint(Point(3, 6), Point(4, 10)))));
59
INSERT INTO gis_multi_line VALUES
60
(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
61
(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
62
(116, MLineFromWKB(AsWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7))))));
63
INSERT INTO gis_multi_polygon VALUES
64
(117, MultiPolygonFromText('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)))')),
65
(118, MPolyFromText('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)))')),
66
(119, MPolyFromWKB(AsWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3)))))));
67
INSERT INTO gis_geometrycollection VALUES
68
(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
69
(121, GeometryFromWKB(AsWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9))))));
70
INSERT into gis_geometry SELECT * FROM gis_point;
71
INSERT into gis_geometry SELECT * FROM gis_line;
72
INSERT into gis_geometry SELECT * FROM gis_polygon;
73
INSERT into gis_geometry SELECT * FROM gis_multi_point;
74
INSERT into gis_geometry SELECT * FROM gis_multi_line;
75
INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
76
INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
77
SELECT fid, AsText(g) FROM gis_point;
83
SELECT fid, AsText(g) FROM gis_line;
85
105 LINESTRING(0 0,0 10,10 0)
86
106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
87
107 LINESTRING(10 10,40 10)
88
SELECT fid, AsText(g) FROM gis_polygon;
90
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
91
109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
92
110 POLYGON((0 0,30 0,30 30,0 0))
93
SELECT fid, AsText(g) FROM gis_multi_point;
95
111 MULTIPOINT(0 0,10 10,10 20,20 20)
96
112 MULTIPOINT(1 1,11 11,11 21,21 21)
97
113 MULTIPOINT(3 6,4 10)
98
SELECT fid, AsText(g) FROM gis_multi_line;
100
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
101
115 MULTILINESTRING((10 48,10 21,10 0))
102
116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
103
SELECT fid, AsText(g) FROM gis_multi_polygon;
105
117 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)))
106
118 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)))
107
119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
108
SELECT fid, AsText(g) FROM gis_geometrycollection;
110
120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
111
121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
112
SELECT fid, AsText(g) FROM gis_geometry;
118
105 LINESTRING(0 0,0 10,10 0)
119
106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
120
107 LINESTRING(10 10,40 10)
121
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
122
109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
123
110 POLYGON((0 0,30 0,30 30,0 0))
124
111 MULTIPOINT(0 0,10 10,10 20,20 20)
125
112 MULTIPOINT(1 1,11 11,11 21,21 21)
126
113 MULTIPOINT(3 6,4 10)
127
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
128
115 MULTILINESTRING((10 48,10 21,10 0))
129
116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
130
117 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)))
131
118 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)))
132
119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
133
120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
134
121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
135
SELECT fid, Dimension(g) FROM gis_geometry;
158
SELECT fid, GeometryType(g) FROM gis_geometry;
179
120 GEOMETRYCOLLECTION
180
121 GEOMETRYCOLLECTION
181
SELECT fid, IsEmpty(g) FROM gis_geometry;
204
SELECT fid, AsText(Envelope(g)) FROM gis_geometry;
205
fid AsText(Envelope(g))
206
101 POLYGON((10 10,10 10,10 10,10 10,10 10))
207
102 POLYGON((20 10,20 10,20 10,20 10,20 10))
208
103 POLYGON((20 20,20 20,20 20,20 20,20 20))
209
104 POLYGON((10 20,10 20,10 20,10 20,10 20))
210
105 POLYGON((0 0,10 0,10 10,0 10,0 0))
211
106 POLYGON((10 10,20 10,20 20,10 20,10 10))
212
107 POLYGON((10 10,40 10,40 10,10 10,10 10))
213
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
214
109 POLYGON((0 0,50 0,50 50,0 50,0 0))
215
110 POLYGON((0 0,30 0,30 30,0 30,0 0))
216
111 POLYGON((0 0,20 0,20 20,0 20,0 0))
217
112 POLYGON((1 1,21 1,21 21,1 21,1 1))
218
113 POLYGON((3 6,4 6,4 10,3 10,3 6))
219
114 POLYGON((10 0,16 0,16 48,10 48,10 0))
220
115 POLYGON((10 0,10 0,10 48,10 48,10 0))
221
116 POLYGON((1 2,21 2,21 8,1 8,1 2))
222
117 POLYGON((28 0,84 0,84 42,28 42,28 0))
223
118 POLYGON((28 0,84 0,84 42,28 42,28 0))
224
119 POLYGON((0 0,3 0,3 3,0 3,0 0))
225
120 POLYGON((0 0,10 0,10 10,0 10,0 0))
226
121 POLYGON((3 6,44 6,44 9,3 9,3 6))
227
explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
228
id select_type table type possible_keys key key_len ref rows filtered Extra
229
1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21 100.00
231
Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
232
SELECT fid, X(g) FROM gis_point;
238
SELECT fid, Y(g) FROM gis_point;
244
explain extended select X(g),Y(g) FROM gis_point;
245
id select_type table type possible_keys key key_len ref rows filtered Extra
246
1 SIMPLE gis_point ALL NULL NULL NULL NULL 4 100.00
248
Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
249
SELECT fid, AsText(StartPoint(g)) FROM gis_line;
250
fid AsText(StartPoint(g))
254
SELECT fid, AsText(EndPoint(g)) FROM gis_line;
255
fid AsText(EndPoint(g))
259
SELECT fid, GLength(g) FROM gis_line;
264
SELECT fid, NumPoints(g) FROM gis_line;
269
SELECT fid, AsText(PointN(g, 2)) FROM gis_line;
270
fid AsText(PointN(g, 2))
274
SELECT fid, IsClosed(g) FROM gis_line;
279
explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
280
id select_type table type possible_keys key key_len ref rows filtered Extra
281
1 SIMPLE gis_line ALL NULL NULL NULL NULL 3 100.00
283
Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
284
SELECT fid, AsText(Centroid(g)) FROM gis_polygon;
285
fid AsText(Centroid(g))
287
109 POINT(25.4166666666667 25.4166666666667)
289
SELECT fid, Area(g) FROM gis_polygon;
294
SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon;
295
fid AsText(ExteriorRing(g))
296
108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
297
109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
298
110 LINESTRING(0 0,30 0,30 30,0 0)
299
SELECT fid, NumInteriorRings(g) FROM gis_polygon;
300
fid NumInteriorRings(g)
304
SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon;
305
fid AsText(InteriorRingN(g, 1))
307
109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
309
explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
310
id select_type table type possible_keys key key_len ref rows filtered Extra
311
1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3 100.00
313
Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
314
SELECT fid, IsClosed(g) FROM gis_multi_line;
319
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon;
320
fid AsText(Centroid(g))
321
117 POINT(55.5885277530424 17.426536064114)
322
118 POINT(55.5885277530424 17.426536064114)
324
SELECT fid, Area(g) FROM gis_multi_polygon;
329
SELECT fid, NumGeometries(g) from gis_multi_point;
334
SELECT fid, NumGeometries(g) from gis_multi_line;
339
SELECT fid, NumGeometries(g) from gis_multi_polygon;
344
SELECT fid, NumGeometries(g) from gis_geometrycollection;
348
explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
349
id select_type table type possible_keys key key_len ref rows filtered Extra
350
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 100.00
352
Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
353
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
354
fid AsText(GeometryN(g, 2))
358
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line;
359
fid AsText(GeometryN(g, 2))
360
114 LINESTRING(16 0,16 23,16 48)
362
116 LINESTRING(2 5,5 8,21 7)
363
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon;
364
fid AsText(GeometryN(g, 2))
365
117 POLYGON((59 18,67 18,67 13,59 13,59 18))
366
118 POLYGON((59 18,67 18,67 13,59 13,59 18))
368
SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection;
369
fid AsText(GeometryN(g, 2))
370
120 LINESTRING(0 0,10 10)
371
121 LINESTRING(3 6,7 9)
372
SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection;
373
fid AsText(GeometryN(g, 1))
376
explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
377
id select_type table type possible_keys key key_len ref rows filtered Extra
378
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 100.00
380
Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
381
SELECT g1.fid as first, g2.fid as second,
382
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
383
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
384
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
385
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
386
first second w c o e d t i r
387
120 120 1 1 0 1 0 0 1 0
388
120 121 0 0 1 0 0 0 1 0
389
121 120 0 0 1 0 0 0 1 0
390
121 121 1 1 0 1 0 0 1 0
391
explain extended SELECT g1.fid as first, g2.fid as second,
392
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
393
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
394
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
395
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
396
id select_type table type possible_keys key key_len ref rows filtered Extra
397
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
398
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
400
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
401
DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
409
gc geometrycollection,
413
Field Type Null Key Default Extra
415
ln linestring YES NULL
417
mp multipoint YES NULL
418
mln multilinestring YES NULL
419
mpg multipolygon YES NULL
420
gc geometrycollection YES NULL
422
ALTER TABLE t1 ADD fid INT NOT NULL;
424
Field Type Null Key Default Extra
426
ln linestring YES NULL
428
mp multipoint YES NULL
429
mln multilinestring YES NULL
430
mpg multipolygon YES NULL
431
gc geometrycollection YES NULL
435
SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
436
AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))))
438
explain extended SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
439
id select_type table type possible_keys key key_len ref rows filtered Extra
440
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
442
Note 1003 select astext(geometryfromwkb(aswkb(geometryfromtext('POINT(1 4)')))) AS `AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))))`
443
explain extended SELECT AsText(GeometryFromWKB(AsWKB(PointFromText('POINT(1 4)'))));
444
id select_type table type possible_keys key key_len ref rows filtered Extra
445
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
447
Note 1003 select astext(geometryfromwkb(aswkb(geometryfromtext('POINT(1 4)')))) AS `AsText(GeometryFromWKB(AsWKB(PointFromText('POINT(1 4)'))))`
448
SELECT SRID(GeomFromText('LineString(1 1,2 2)',101));
449
SRID(GeomFromText('LineString(1 1,2 2)',101))
451
explain extended SELECT SRID(GeomFromText('LineString(1 1,2 2)',101));
452
id select_type table type possible_keys key key_len ref rows filtered Extra
453
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
455
Note 1003 select srid(geometryfromtext('LineString(1 1,2 2)',101)) AS `SRID(GeomFromText('LineString(1 1,2 2)',101))`
456
explain extended select issimple(MultiPoint(Point(3, 6), Point(4, 10))), issimple(Point(3, 6));
457
id select_type table type possible_keys key key_len ref rows filtered Extra
458
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
460
Note 1003 select issimple(multipoint(point(3,6),point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,issimple(point(3,6)) AS `issimple(Point(3, 6))`
461
create table t1 (a geometry not null);
462
insert into t1 values (GeomFromText('Point(1 2)'));
463
insert into t1 values ('Garbage');
464
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
465
insert IGNORE into t1 values ('Garbage');
466
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
467
alter table t1 add spatial index(a);
469
create table t1(a geometry not null, spatial index(a));
470
insert into t1 values
471
(GeomFromText('POINT(1 1)')), (GeomFromText('POINT(3 3)')),
472
(GeomFromText('POINT(4 4)')), (GeomFromText('POINT(6 6)'));
473
select AsText(a) from t1 where
474
MBRContains(GeomFromText('Polygon((0 0, 0 2, 2 2, 2 0, 0 0))'), a)
476
MBRContains(GeomFromText('Polygon((2 2, 2 5, 5 5, 5 2, 2 2))'), a);
481
select AsText(a) from t1 where
482
MBRContains(GeomFromText('Polygon((0 0, 0 2, 2 2, 2 0, 0 0))'), a)
484
MBRContains(GeomFromText('Polygon((0 0, 0 7, 7 7, 7 0, 0 0))'), a);
488
CREATE TABLE t1 (Coordinates POINT NOT NULL, SPATIAL INDEX(Coordinates));
489
INSERT INTO t1 VALUES(GeomFromText('POINT(383293632 1754448)'));
490
INSERT INTO t1 VALUES(GeomFromText('POINT(564952612 157516260)'));
491
INSERT INTO t1 VALUES(GeomFromText('POINT(903994614 180726515)'));
492
INSERT INTO t1 VALUES(GeomFromText('POINT(98128178 141127631)'));
493
INSERT INTO t1 VALUES(GeomFromText('POINT(862547902 799334546)'));
494
INSERT INTO t1 VALUES(GeomFromText('POINT(341989013 850270906)'));
495
INSERT INTO t1 VALUES(GeomFromText('POINT(803302376 93039099)'));
496
INSERT INTO t1 VALUES(GeomFromText('POINT(857439153 817431356)'));
497
INSERT INTO t1 VALUES(GeomFromText('POINT(319757546 343162742)'));
498
INSERT INTO t1 VALUES(GeomFromText('POINT(826341972 717484432)'));
499
INSERT INTO t1 VALUES(GeomFromText('POINT(305066789 201736238)'));
500
INSERT INTO t1 VALUES(GeomFromText('POINT(626068992 616241497)'));
501
INSERT INTO t1 VALUES(GeomFromText('POINT(55789424 755830108)'));
502
INSERT INTO t1 VALUES(GeomFromText('POINT(802874458 312435220)'));
503
INSERT INTO t1 VALUES(GeomFromText('POINT(153795660 551723671)'));
504
INSERT INTO t1 VALUES(GeomFromText('POINT(242207428 537089292)'));
505
INSERT INTO t1 VALUES(GeomFromText('POINT(553478119 807160039)'));
506
INSERT INTO t1 VALUES(GeomFromText('POINT(694605552 457472733)'));
507
INSERT INTO t1 VALUES(GeomFromText('POINT(987886554 792733729)'));
508
INSERT INTO t1 VALUES(GeomFromText('POINT(598600363 850434457)'));
509
INSERT INTO t1 VALUES(GeomFromText('POINT(592068275 940589376)'));
510
INSERT INTO t1 VALUES(GeomFromText('POINT(700705362 395370650)'));
511
INSERT INTO t1 VALUES(GeomFromText('POINT(33628474 558144514)'));
512
INSERT INTO t1 VALUES(GeomFromText('POINT(212802006 353386020)'));
513
INSERT INTO t1 VALUES(GeomFromText('POINT(901307256 39143977)'));
514
INSERT INTO t1 VALUES(GeomFromText('POINT(70870451 206374045)'));
515
INSERT INTO t1 VALUES(GeomFromText('POINT(240880214 696939443)'));
516
INSERT INTO t1 VALUES(GeomFromText('POINT(822615542 296669638)'));
517
INSERT INTO t1 VALUES(GeomFromText('POINT(452769551 625489999)'));
518
INSERT INTO t1 VALUES(GeomFromText('POINT(609104858 606565210)'));
519
INSERT INTO t1 VALUES(GeomFromText('POINT(177213669 851312285)'));
520
INSERT INTO t1 VALUES(GeomFromText('POINT(143654501 730691787)'));
521
INSERT INTO t1 VALUES(GeomFromText('POINT(658472325 838260052)'));
522
INSERT INTO t1 VALUES(GeomFromText('POINT(188164520 646358878)'));
523
INSERT INTO t1 VALUES(GeomFromText('POINT(630993781 786764883)'));
524
INSERT INTO t1 VALUES(GeomFromText('POINT(496793334 223062055)'));
525
INSERT INTO t1 VALUES(GeomFromText('POINT(727354258 197498696)'));
526
INSERT INTO t1 VALUES(GeomFromText('POINT(618432704 760982731)'));
527
INSERT INTO t1 VALUES(GeomFromText('POINT(755643210 831234710)'));
528
INSERT INTO t1 VALUES(GeomFromText('POINT(114368751 656950466)'));
529
INSERT INTO t1 VALUES(GeomFromText('POINT(870378686 185239202)'));
530
INSERT INTO t1 VALUES(GeomFromText('POINT(863324511 111258900)'));
531
INSERT INTO t1 VALUES(GeomFromText('POINT(882178645 685940052)'));
532
INSERT INTO t1 VALUES(GeomFromText('POINT(407928538 334948195)'));
533
INSERT INTO t1 VALUES(GeomFromText('POINT(311430051 17033395)'));
534
INSERT INTO t1 VALUES(GeomFromText('POINT(941513405 488643719)'));
535
INSERT INTO t1 VALUES(GeomFromText('POINT(868345680 85167906)'));
536
INSERT INTO t1 VALUES(GeomFromText('POINT(219335507 526818004)'));
537
INSERT INTO t1 VALUES(GeomFromText('POINT(923427958 407500026)'));
538
INSERT INTO t1 VALUES(GeomFromText('POINT(173176882 554421738)'));
539
INSERT INTO t1 VALUES(GeomFromText('POINT(194264908 669970217)'));
540
INSERT INTO t1 VALUES(GeomFromText('POINT(777483793 921619165)'));
541
INSERT INTO t1 VALUES(GeomFromText('POINT(867468912 395916497)'));
542
INSERT INTO t1 VALUES(GeomFromText('POINT(682601897 623112122)'));
543
INSERT INTO t1 VALUES(GeomFromText('POINT(227151206 796970647)'));
544
INSERT INTO t1 VALUES(GeomFromText('POINT(280062588 97529892)'));
545
INSERT INTO t1 VALUES(GeomFromText('POINT(982209849 143387099)'));
546
INSERT INTO t1 VALUES(GeomFromText('POINT(208788792 864388493)'));
547
INSERT INTO t1 VALUES(GeomFromText('POINT(829327151 616717329)'));
548
INSERT INTO t1 VALUES(GeomFromText('POINT(199336688 140757201)'));
549
INSERT INTO t1 VALUES(GeomFromText('POINT(633750724 140850093)'));
550
INSERT INTO t1 VALUES(GeomFromText('POINT(629400920 502096404)'));
551
INSERT INTO t1 VALUES(GeomFromText('POINT(226017998 848736426)'));
552
INSERT INTO t1 VALUES(GeomFromText('POINT(28914408 149445955)'));
553
INSERT INTO t1 VALUES(GeomFromText('POINT(256236452 202091290)'));
554
INSERT INTO t1 VALUES(GeomFromText('POINT(703867693 450501360)'));
555
INSERT INTO t1 VALUES(GeomFromText('POINT(872061506 481351486)'));
556
INSERT INTO t1 VALUES(GeomFromText('POINT(372120524 739530418)'));
557
INSERT INTO t1 VALUES(GeomFromText('POINT(877267982 54722420)'));
558
INSERT INTO t1 VALUES(GeomFromText('POINT(362642540 104419188)'));
559
INSERT INTO t1 VALUES(GeomFromText('POINT(851693067 642705127)'));
560
INSERT INTO t1 VALUES(GeomFromText('POINT(201949080 833902916)'));
561
INSERT INTO t1 VALUES(GeomFromText('POINT(786092225 410737872)'));
562
INSERT INTO t1 VALUES(GeomFromText('POINT(698291409 615419376)'));
563
INSERT INTO t1 VALUES(GeomFromText('POINT(27455201 897628096)'));
564
INSERT INTO t1 VALUES(GeomFromText('POINT(756176576 661205925)'));
565
INSERT INTO t1 VALUES(GeomFromText('POINT(38478189 385577496)'));
566
INSERT INTO t1 VALUES(GeomFromText('POINT(163302328 264496186)'));
567
INSERT INTO t1 VALUES(GeomFromText('POINT(234313922 192216735)'));
568
INSERT INTO t1 VALUES(GeomFromText('POINT(413942141 490550373)'));
569
INSERT INTO t1 VALUES(GeomFromText('POINT(394308025 117809834)'));
570
INSERT INTO t1 VALUES(GeomFromText('POINT(941051732 266369530)'));
571
INSERT INTO t1 VALUES(GeomFromText('POINT(599161319 313172256)'));
572
INSERT INTO t1 VALUES(GeomFromText('POINT(5899948 476429301)'));
573
INSERT INTO t1 VALUES(GeomFromText('POINT(367894677 368542487)'));
574
INSERT INTO t1 VALUES(GeomFromText('POINT(580848489 219587743)'));
575
INSERT INTO t1 VALUES(GeomFromText('POINT(11247614 782797569)'));
577
create table t1 select GeomFromWKB(POINT(1,3));
578
show create table t1;
580
t1 CREATE TABLE `t1` (
581
`GeomFromWKB(POINT(1,3))` geometry DEFAULT NULL
582
) ENGINE=MyISAM DEFAULT CHARSET=latin1
584
CREATE TABLE `t1` (`object_id` bigint(20) unsigned NOT NULL default '0', `geo`
585
geometry NOT NULL default '') ENGINE=MyISAM ;
587
Warning 1101 BLOB/TEXT column 'geo' can't have a default value
588
insert into t1 values ('85984',GeomFromText('MULTIPOLYGON(((-115.006363
589
36.305435,-114.992394 36.305202,-114.991219 36.305975,-114.991163
590
36.306845,-114.989432 36.309452,-114.978275 36.312642,-114.977363
591
36.311978,-114.975327 36.312344,-114.96502 36.31597,-114.963364
592
36.313629,-114.961723 36.313721,-114.956398 36.316057,-114.951882
593
36.320979,-114.947073 36.323475,-114.945207 36.326451,-114.945207
594
36.326451,-114.944132 36.326061,-114.94003 36.326588,-114.924017
595
36.334484,-114.923281 36.334146,-114.92564 36.331504,-114.94072
596
36.319282,-114.945348 36.314812,-114.948091 36.314762,-114.951755
597
36.316211,-114.952446 36.313883,-114.952644 36.309488,-114.944725
598
36.313083,-114.93706 36.32043,-114.932478 36.323497,-114.924556
599
36.327708,-114.922608 36.329715,-114.92009 36.328695,-114.912105
600
36.323566,-114.901647 36.317952,-114.897436 36.313968,-114.895344
601
36.309573,-114.891699 36.304398,-114.890569 36.303551,-114.886356
602
36.302702,-114.885141 36.301351,-114.885709 36.297391,-114.892499
603
36.290893,-114.902142 36.288974,-114.904941 36.288838,-114.905308
604
36.289845,-114.906325 36.290395,-114.909916 36.289549,-114.914527
605
36.287535,-114.918797 36.284423,-114.922982 36.279731,-114.924113
606
36.277282,-114.924057 36.275817,-114.927733 36.27053,-114.929354
607
36.269029,-114.929354 36.269029,-114.950856 36.268715,-114.950768
608
36.264324,-114.960206 36.264293,-114.960301 36.268943,-115.006662
609
36.268929,-115.008583 36.265619,-115.00665 36.264247,-115.006659
610
36.246873,-115.006659 36.246873,-115.006838 36.247697,-115.010764
611
36.247774,-115.015609 36.25113,-115.015765 36.254505,-115.029517
612
36.254619,-115.038573 36.249317,-115.038573 36.249317,-115.023403
613
36.25841,-115.023873 36.258994,-115.031845 36.259829,-115.03183
614
36.261053,-115.025561 36.261095,-115.036417 36.274632,-115.033729
615
36.276041,-115.032217 36.274851,-115.029845 36.273959,-115.029934
616
36.274966,-115.025763 36.274896,-115.025406 36.281044,-115.028731
617
36.284471,-115.036497 36.290377,-115.042071 36.291039,-115.026759
618
36.298478,-115.008995 36.301966,-115.006363 36.305435),(-115.079835
619
36.244369,-115.079735 36.260186,-115.076435 36.262369,-115.069758
620
36.265,-115.070235 36.268757,-115.064542 36.268655,-115.061843
621
36.269857,-115.062676 36.270693,-115.06305 36.272344,-115.059051
622
36.281023,-115.05918 36.283008,-115.060591 36.285246,-115.061913
623
36.290022,-115.062499 36.306353,-115.062499 36.306353,-115.060918
624
36.30642,-115.06112 36.289779,-115.05713 36.2825,-115.057314
625
36.279446,-115.060779 36.274659,-115.061366 36.27209,-115.057858
626
36.26557,-115.055805 36.262883,-115.054688 36.262874,-115.047335
627
36.25037,-115.044234 36.24637,-115.052434 36.24047,-115.061734
628
36.23507,-115.061934 36.22677,-115.061934 36.22677,-115.061491
629
36.225267,-115.062024 36.218194,-115.060134 36.218278,-115.060133
630
36.210771,-115.057833 36.210771,-115.057433 36.196271,-115.062233
631
36.196271,-115.062233 36.190371,-115.062233 36.190371,-115.065533
632
36.190371,-115.071333 36.188571,-115.098331 36.188275,-115.098331
633
36.188275,-115.098435 36.237569,-115.097535 36.240369,-115.097535
634
36.240369,-115.093235 36.240369,-115.089135 36.240469,-115.083135
635
36.240569,-115.083135 36.240569,-115.079835
636
36.244369)))')),('85998',GeomFromText('MULTIPOLYGON(((-115.333107
637
36.264587,-115.333168 36.280638,-115.333168 36.280638,-115.32226
638
36.280643,-115.322538 36.274311,-115.327222 36.274258,-115.32733
639
36.263026,-115.330675 36.262984,-115.332132 36.264673,-115.333107
640
36.264587),(-115.247239 36.247066,-115.247438 36.218267,-115.247438
641
36.218267,-115.278525 36.219263,-115.278525 36.219263,-115.301545
642
36.219559,-115.332748 36.219197,-115.332757 36.220041,-115.332757
643
36.220041,-115.332895 36.233514,-115.349023 36.233479,-115.351489
644
36.234475,-115.353681 36.237021,-115.357106 36.239789,-115.36519
645
36.243331,-115.368156 36.243487,-115.367389 36.244902,-115.364553
646
36.246014,-115.359219 36.24616,-115.356186 36.248025,-115.353347
647
36.248004,-115.350813 36.249507,-115.339673 36.25387,-115.333069
648
36.255018,-115.333069 36.255018,-115.333042 36.247767,-115.279039
649
36.248666,-115.263639 36.247466,-115.263839 36.252766,-115.261439
650
36.252666,-115.261439 36.247366,-115.247239 36.247066)))'));
651
select object_id, geometrytype(geo), ISSIMPLE(GEO), ASTEXT(centroid(geo)) from
652
t1 where object_id=85998;
653
object_id geometrytype(geo) ISSIMPLE(GEO) ASTEXT(centroid(geo))
654
85998 MULTIPOLYGON 0 POINT(115.318773152032 -36.2374728210215)
655
select object_id, geometrytype(geo), ISSIMPLE(GEO), ASTEXT(centroid(geo)) from
656
t1 where object_id=85984;
657
object_id geometrytype(geo) ISSIMPLE(GEO) ASTEXT(centroid(geo))
658
85984 MULTIPOLYGON 0 POINT(-114.877871869233 36.3310176346905)
660
create table t1 (fl geometry not null);
661
insert into t1 values (1);
662
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
663
insert into t1 values (1.11);
664
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
665
insert into t1 values ("qwerty");
666
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
667
insert into t1 values (pointfromtext('point(1,1)'));
668
ERROR 23000: Column 'fl' cannot be null
670
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))));
671
(asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))))
673
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
674
(asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))))
676
create table t1 (g GEOMETRY);
678
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
679
def test t1 t1 g g 255 4294967295 0 Y 144 0 63
681
select asbinary(g) from t1;
682
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
683
def asbinary(g) 252 4294967295 0 Y 128 0 63
686
create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b));
687
alter table t1 disable keys;
688
load data infile '../../std_data/bad_gis_data.dat' into table t1;
689
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'b' at row 1
690
alter table t1 enable keys;
692
create table t1 (a int, b blob);
693
insert into t1 values (1, ''), (2, NULL), (3, '1');
700
geometryfromtext(b) IS NULL, geometryfromwkb(b) IS NULL, astext(b) IS NULL,
701
aswkb(b) IS NULL, geometrytype(b) IS NULL, centroid(b) IS NULL,
702
envelope(b) IS NULL, startpoint(b) IS NULL, endpoint(b) IS NULL,
703
exteriorring(b) IS NULL, pointn(b, 1) IS NULL, geometryn(b, 1) IS NULL,
704
interiorringn(b, 1) IS NULL, multipoint(b) IS NULL, isempty(b) IS NULL,
705
issimple(b) IS NULL, isclosed(b) IS NULL, dimension(b) IS NULL,
706
numgeometries(b) IS NULL, numinteriorrings(b) IS NULL, numpoints(b) IS NULL,
707
area(b) IS NULL, glength(b) IS NULL, srid(b) IS NULL, x(b) IS NULL,
710
geometryfromtext(b) IS NULL geometryfromwkb(b) IS NULL astext(b) IS NULL aswkb(b) IS NULL geometrytype(b) IS NULL centroid(b) IS NULL envelope(b) IS NULL startpoint(b) IS NULL endpoint(b) IS NULL exteriorring(b) IS NULL pointn(b, 1) IS NULL geometryn(b, 1) IS NULL interiorringn(b, 1) IS NULL multipoint(b) IS NULL isempty(b) IS NULL issimple(b) IS NULL isclosed(b) IS NULL dimension(b) IS NULL numgeometries(b) IS NULL numinteriorrings(b) IS NULL numpoints(b) IS NULL area(b) IS NULL glength(b) IS NULL srid(b) IS NULL x(b) IS NULL y(b) IS NULL
711
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
712
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
713
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
715
within(b, b) IS NULL, contains(b, b) IS NULL, overlaps(b, b) IS NULL,
716
equals(b, b) IS NULL, disjoint(b, b) IS NULL, touches(b, b) IS NULL,
717
intersects(b, b) IS NULL, crosses(b, b) IS NULL
719
within(b, b) IS NULL contains(b, b) IS NULL overlaps(b, b) IS NULL equals(b, b) IS NULL disjoint(b, b) IS NULL touches(b, b) IS NULL intersects(b, b) IS NULL crosses(b, b) IS NULL
724
point(b, b) IS NULL, linestring(b) IS NULL, polygon(b) IS NULL, multipoint(b) IS NULL,
725
multilinestring(b) IS NULL, multipolygon(b) IS NULL,
726
geometrycollection(b) IS NULL
728
point(b, b) IS NULL linestring(b) IS NULL polygon(b) IS NULL multipoint(b) IS NULL multilinestring(b) IS NULL multipolygon(b) IS NULL geometrycollection(b) IS NULL
733
CREATE TABLE t1(a POINT) ENGINE=MyISAM;
734
INSERT INTO t1 VALUES (NULL);
739
CREATE TABLE `t1` ( `col9` set('a'), `col89` date);
740
INSERT INTO `t1` VALUES ('','0000-00-00');
741
select geomfromtext(col9,col89) as a from t1;
746
geomdata polygon NOT NULL,
747
SPATIAL KEY index_geom (geomdata)
748
) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED;
750
geomdata polygon NOT NULL,
751
SPATIAL KEY index_geom (geomdata)
752
) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED;
755
aswkb(ws.geomdata) AS geomdatawkb
760
aswkb(ws.geomdata) AS geomdatawkb
764
Field Type Null Key Default Extra
765
geomdatawkb longblob YES NULL
769
create table t1(col1 geometry default null,col15 geometrycollection not
770
null,spatial index(col15),index(col1(15)))engine=myisam;
771
insert into t1 set col15 = GeomFromText('POINT(6 5)');
772
insert into t1 set col15 = GeomFromText('POINT(6 5)');
773
check table t1 extended;
774
Table Op Msg_type Msg_text
775
test.t1 check status OK
778
create table t1 (s1 geometry not null,s2 char(100));
779
create trigger t1_bu before update on t1 for each row set new.s1 = null;
780
insert into t1 values (null,null);
781
ERROR 23000: Column 's1' cannot be null
783
drop procedure if exists fn3;
784
create function fn3 () returns point deterministic return GeomFromText("point(1 1)");
785
show create function fn3;
786
Function sql_mode Create Function character_set_client collation_connection Database Collation
787
fn3 CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point
789
return GeomFromText("point(1 1)") latin1 latin1_swedish_ci latin1_swedish_ci
790
select astext(fn3());
794
create table t1(pt POINT);
795
alter table t1 add primary key pti(pt);
797
create table t1(pt GEOMETRY);
798
alter table t1 add primary key pti(pt);
799
ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length
800
alter table t1 add primary key pti(pt(20));
802
create table t1 select GeomFromText('point(1 1)');
804
Field Type Null Key Default Extra
805
GeomFromText('point(1 1)') geometry YES NULL
807
create table t1 (g geometry not null);
808
insert into t1 values(default);
809
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
811
CREATE TABLE t1 (a GEOMETRY);
812
CREATE VIEW v1 AS SELECT GeomFromwkb(ASBINARY(a)) FROM t1;
813
CREATE VIEW v2 AS SELECT a FROM t1;
815
Field Type Null Key Default Extra
816
GeomFromwkb(ASBINARY(a)) geometry YES NULL
818
Field Type Null Key Default Extra
822
create table t1 (name VARCHAR(100), square GEOMETRY);
823
INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
824
INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
825
INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
826
INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
827
INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
828
INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
829
INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
830
INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
831
INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
832
INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
833
INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
834
INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
835
INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
836
INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
837
INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
838
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
841
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
843
down3,left3,right3,up3
844
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
847
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
849
big,center,down,down2,left,left2,right,right2,small,up,up2
850
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
853
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
855
down2,left2,right2,up2
856
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
859
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
862
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
864
down3,left3,right3,up3
865
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
868
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
870
big,center,down,down2,left,left2,right,right2,small,up,up2
871
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
874
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
876
down2,left2,right2,up2
877
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
880
SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
881
SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
882
SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
883
SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
884
SET @point1 = GeomFromText('POLYGON ((0 0))');
885
SET @point2 = GeomFromText('POLYGON ((-2 0))');
886
SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
888
SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
890
SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
891
Overlaps(@horiz1, @vert1)
893
SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
894
Overlaps(@horiz1, @horiz2)
896
SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
897
Overlaps(@horiz1, @horiz3)
899
SELECT Overlaps(@horiz1, @point1) FROM DUAL;
900
Overlaps(@horiz1, @point1)
902
SELECT Overlaps(@horiz1, @point2) FROM DUAL;
903
Overlaps(@horiz1, @point2)
906
create table t1(f1 geometry, f2 point, f3 linestring);
907
select f1 from t1 union select f1 from t1;
909
insert into t1 (f2,f3) values (GeomFromText('POINT(1 1)'),
910
GeomFromText('LINESTRING(0 0,1 1,2 2)'));
911
select AsText(f2),AsText(f3) from t1;
912
AsText(f2) AsText(f3)
913
POINT(1 1) LINESTRING(0 0,1 1,2 2)
914
select AsText(a) from (select f2 as a from t1 union select f3 from t1) t;
917
LINESTRING(0 0,1 1,2 2)
918
create table t2 as select f2 as a from t1 union select f3 from t1;
920
Field Type Null Key Default Extra
922
select AsText(a) from t2;
925
LINESTRING(0 0,1 1,2 2)
930
CREATE TABLE t1 (p POINT);
931
CREATE TABLE t2 (p POINT, INDEX(p));
932
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
933
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
934
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
938
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
939
id select_type table type possible_keys key key_len ref rows Extra
940
1 SIMPLE t2 system p NULL NULL NULL 1
941
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
944
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
945
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
947
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
948
id select_type table type possible_keys key key_len ref rows Extra
949
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
950
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
954
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
955
id select_type table type possible_keys key key_len ref rows Extra
956
1 SIMPLE t2 ref p p 28 const 1 Using where
957
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
961
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
962
id select_type table type possible_keys key key_len ref rows Extra
963
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
964
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
969
create table `t1` (`col002` point)engine=myisam;
970
insert into t1 values (),(),();
971
select min(`col002`) from t1 union select `col002` from t1;
976
# Bug #47780: crash when comparing GIS items from subquery
978
CREATE TABLE t1(a INT, b MULTIPOLYGON);
979
INSERT INTO t1 VALUES
982
'multipolygon(((1 2,3 4,5 6,7 8,9 8),(7 6,5 4,3 2,1 2,3 4)))'));
984
SELECT 1 FROM t1 WHERE a <> (SELECT GEOMETRYCOLLECTIONFROMWKB(b) FROM t1);
988
# Bug #49250 : spatial btree index corruption and crash
989
# Part one : spatial syntax check
991
CREATE TABLE t1(col1 MULTIPOLYGON NOT NULL,
992
SPATIAL INDEX USING BTREE (col1));
993
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE (col1))' at line 2
994
CREATE TABLE t2(col1 MULTIPOLYGON NOT NULL);
995
CREATE SPATIAL INDEX USING BTREE ON t2(col);
996
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE ON t2(col)' at line 1
997
ALTER TABLE t2 ADD SPATIAL INDEX USING BTREE (col1);
998
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE (col1)' at line 1
1001
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
1002
create view v1 as select * from t1;
1004
Field Type Null Key Default Extra
1005
f1 tinyint(1) YES NULL
1007
f3 varchar(1) YES NULL
1008
f4 geometry YES NULL
1009
f5 datetime YES NULL
1012
SELECT MultiPoint(12345,'');
1013
MultiPoint(12345,'')
1015
SELECT MultiPoint(123451,'');
1016
MultiPoint(123451,'')
1018
SELECT MultiPoint(1234512,'');
1019
MultiPoint(1234512,'')
1021
SELECT MultiPoint(12345123,'');
1022
MultiPoint(12345123,'')
1024
SELECT MultiLineString(12345,'');
1025
MultiLineString(12345,'')
1027
SELECT MultiLineString(123451,'');
1028
MultiLineString(123451,'')
1030
SELECT MultiLineString(1234512,'');
1031
MultiLineString(1234512,'')
1033
SELECT MultiLineString(12345123,'');
1034
MultiLineString(12345123,'')
1036
SELECT LineString(12345,'');
1037
LineString(12345,'')
1039
SELECT LineString(123451,'');
1040
LineString(123451,'')
1042
SELECT LineString(1234512,'');
1043
LineString(1234512,'')
1045
SELECT LineString(12345123,'');
1046
LineString(12345123,'')
1048
SELECT Polygon(12345,'');
1051
SELECT Polygon(123451,'');
1054
SELECT Polygon(1234512,'');
1057
SELECT Polygon(12345123,'');
1058
Polygon(12345123,'')