~vkolesnikov/pbxt/pbxt-07-diskfull

« back to all changes in this revision

Viewing changes to pbxt/mysql-test-update/mysql-test/include/gis_generic.inc

  • Committer: paul-mccullagh
  • Date: 2006-10-23 09:14:04 UTC
  • Revision ID: paul-mccullagh-918861e03d351978a9541168a96e58cc826734ee
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--source include/have_geometry.inc
 
2
 
 
3
#
 
4
# Spatial objects
 
5
#
 
6
 
 
7
--disable_warnings
 
8
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
 
9
--enable_warnings
 
10
 
 
11
CREATE TABLE gis_point  (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g POINT);
 
12
CREATE TABLE gis_line  (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g LINESTRING);
 
13
CREATE TABLE gis_polygon   (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g POLYGON);
 
14
CREATE TABLE gis_multi_point (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOINT);
 
15
CREATE TABLE gis_multi_line (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTILINESTRING);
 
16
CREATE TABLE gis_multi_polygon  (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOLYGON);
 
17
CREATE TABLE gis_geometrycollection  (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g GEOMETRYCOLLECTION);
 
18
CREATE TABLE gis_geometry (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g GEOMETRY);
 
19
 
 
20
SHOW CREATE TABLE gis_point;
 
21
SHOW FIELDS FROM gis_point;
 
22
SHOW FIELDS FROM gis_line;
 
23
SHOW FIELDS FROM gis_polygon;
 
24
SHOW FIELDS FROM gis_multi_point;
 
25
SHOW FIELDS FROM gis_multi_line;
 
26
SHOW FIELDS FROM gis_multi_polygon;
 
27
SHOW FIELDS FROM gis_geometrycollection;
 
28
SHOW FIELDS FROM gis_geometry;
 
29
 
 
30
 
 
31
INSERT INTO gis_point VALUES 
 
32
(101, PointFromText('POINT(10 10)')),
 
33
(102, PointFromText('POINT(20 10)')),
 
34
(103, PointFromText('POINT(20 20)')),
 
35
(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
 
36
 
 
37
INSERT INTO gis_line VALUES
 
38
(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
 
39
(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
 
40
(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
 
41
 
 
42
INSERT INTO gis_polygon VALUES
 
43
(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
 
44
(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
 
45
(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
 
46
 
 
47
INSERT INTO gis_multi_point VALUES
 
48
(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
 
49
(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
 
50
(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
 
51
 
 
52
INSERT INTO gis_multi_line VALUES
 
53
(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
 
54
(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
 
55
(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
 
56
 
 
57
 
 
58
INSERT INTO gis_multi_polygon VALUES
 
59
(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)))')),
 
60
(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)))')),
 
61
(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
 
62
 
 
63
INSERT INTO gis_geometrycollection VALUES
 
64
(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
 
65
(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
 
66
 
 
67
INSERT into gis_geometry SELECT * FROM gis_point;
 
68
INSERT into gis_geometry SELECT * FROM gis_line;
 
69
INSERT into gis_geometry SELECT * FROM gis_polygon;
 
70
INSERT into gis_geometry SELECT * FROM gis_multi_point;
 
71
INSERT into gis_geometry SELECT * FROM gis_multi_line;
 
72
INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
 
73
INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
 
74
 
 
75
SELECT fid, AsText(g) FROM gis_point ORDER by fid;
 
76
SELECT fid, AsText(g) FROM gis_line ORDER by fid;
 
77
SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
 
78
SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
 
79
SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
 
80
SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
 
81
SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
 
82
SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
 
83
 
 
84
SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
 
85
SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
 
86
SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
 
87
SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
 
88
explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
 
89
 
 
90
SELECT fid, X(g) FROM gis_point ORDER by fid;
 
91
SELECT fid, Y(g) FROM gis_point ORDER by fid;
 
92
explain extended select X(g),Y(g) FROM gis_point;
 
93
 
 
94
SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
 
95
SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
 
96
SELECT fid, GLength(g) FROM gis_line ORDER by fid;
 
97
SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
 
98
SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
 
99
SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
 
100
explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
 
101
 
 
102
SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
 
103
SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
 
104
SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
 
105
SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
 
106
SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
 
107
explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
 
108
 
 
109
SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
 
110
 
 
111
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
 
112
SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
 
113
 
 
114
SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
 
115
SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
 
116
SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
 
117
SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
 
118
explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
 
119
 
 
120
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
 
121
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
 
122
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
 
123
SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
 
124
SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
 
125
explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
 
126
 
 
127
SELECT g1.fid as first, g2.fid as second,
 
128
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
 
129
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
 
130
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
 
131
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
 
132
explain extended SELECT g1.fid as first, g2.fid as second,
 
133
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
 
134
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
 
135
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
 
136
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
 
137
 
 
138
DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
 
139
 
 
140
#
 
141
# Check that ALTER TABLE doesn't loose geometry type
 
142
#
 
143
CREATE TABLE t1 (
 
144
  a INTEGER PRIMARY KEY AUTO_INCREMENT,
 
145
  gp  point,
 
146
  ln  linestring,
 
147
  pg  polygon,
 
148
  mp  multipoint,
 
149
  mln multilinestring,
 
150
  mpg multipolygon,
 
151
  gc  geometrycollection,
 
152
  gm  geometry
 
153
);
 
154
 
 
155
SHOW FIELDS FROM t1;
 
156
ALTER TABLE t1 ADD fid INT;
 
157
SHOW FIELDS FROM t1;
 
158
DROP TABLE t1;
 
159
 
 
160
create table t1 (pk integer primary key auto_increment, a geometry not null);
 
161
insert into t1 (a) values (GeomFromText('Point(1 2)'));
 
162
-- error 1416
 
163
insert into t1 (a) values ('Garbage');
 
164
-- error 1416
 
165
insert IGNORE into t1 (a) values ('Garbage');
 
166
 
 
167
drop table t1;
 
168
 
 
169
create table t1 (pk integer primary key auto_increment, fl geometry);
 
170
--error 1416
 
171
insert into t1 (fl) values (1);
 
172
--error 1416
 
173
insert into t1 (fl) values (1.11);
 
174
--error 1416
 
175
insert into t1 (fl) values ("qwerty");
 
176
--error 1416
 
177
insert into t1 (fl) values (pointfromtext('point(1,1)'));
 
178
 
 
179
drop table t1;
 
180
 
 
181
# End of 5.0 tests