1684 lines
83 KiB
Plaintext
1684 lines
83 KiB
Plaintext
###############################################################################
|
|
# #
|
|
# This test is aimed to focus on the properties and attributes of the #
|
|
# following Geometry classes. #
|
|
# #
|
|
# 1. Point #
|
|
# 2. LineString #
|
|
# 3. Polygon #
|
|
# 4. MultiPoint #
|
|
# 5. MultiLineString #
|
|
# 6. MultiPolygon #
|
|
# 7. GeometryCollection #
|
|
# #
|
|
# Creation Date: 2015-01-13 #
|
|
# Author : Pavan Naik #
|
|
# #
|
|
###############################################################################
|
|
|
|
|
|
############################################################################################
|
|
# Creating the spatial objects #
|
|
############################################################################################
|
|
|
|
--echo # Creating the spatial objects
|
|
USE test;
|
|
|
|
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
|
|
CREATE TABLE gis_linestring (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
|
|
CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
|
|
CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT);
|
|
CREATE TABLE gis_multi_linestring (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING);
|
|
CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON);
|
|
CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION);
|
|
|
|
############################################################################################
|
|
# Inserting POINT Geometry values #
|
|
############################################################################################
|
|
|
|
--echo # Inserting POINT Geometry Values
|
|
|
|
INSERT INTO gis_point VALUES
|
|
(101, ST_POINTFROMTEXT('POINT(0 0)')),
|
|
(102, ST_POINTFROMTEXT('POINT(1 0)')),
|
|
(103, ST_POINTFROMTEXT('POINT(0 1)')),
|
|
(104, ST_POINTFROMTEXT('POINT(1 1)')),
|
|
(105, ST_POINTFROMTEXT('POINT(-1 1)'));
|
|
|
|
INSERT INTO gis_point VALUES
|
|
(106, ST_POINTFROMWKB(ST_ASWKB(POINT(0,0)))),
|
|
(107, ST_POINTFROMWKB(ST_ASWKB(POINT(10,0)))),
|
|
(108, ST_POINTFROMWKB(ST_ASWKB(POINT(0,10)))),
|
|
(109, ST_POINTFROMWKB(ST_ASWKB(POINT(-10,0)))),
|
|
(110, ST_POINTFROMWKB(ST_ASWKB(POINT(0,-10))));
|
|
|
|
INSERT INTO gis_point VALUES
|
|
(111, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1 1)')))),
|
|
(112, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1e308 1e308)')))),
|
|
(113, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(1e308 -1e308)')))),
|
|
(114, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(-1e308 1e308)')))),
|
|
(115, ST_POINTFROMWKB(ST_ASWKB(ST_POINTFROMTEXT('POINT(-1e308 -1e308)'))));
|
|
|
|
--echo # Displaying the inserted POINT Geometry Data
|
|
SELECT fid, ST_ASTEXT(g) FROM gis_point;
|
|
|
|
--echo # Checking the integrity of the above insert statements
|
|
SELECT COUNT(g) FROM gis_point;
|
|
|
|
SELECT COUNT(ST_ASTEXT(g)) FROM gis_point;
|
|
|
|
SELECT COUNT(DISTINCT(g)) FROM gis_point;
|
|
|
|
SELECT COUNT(DISTINCT(ST_ASTEXT(g))) FROM gis_point;
|
|
|
|
############################################################################################
|
|
# Inserting LINESTRING Geometry values #
|
|
############################################################################################
|
|
|
|
--echo # Inserting LINESTRING Geometry Values
|
|
|
|
INSERT INTO gis_linestring VALUES
|
|
(201, ST_LINEFROMTEXT('LINESTRING(0 0,5 5)')),
|
|
(202, ST_LINEFROMTEXT('LINESTRING(0 0,2 2,4 4)')),
|
|
(203, ST_LINEFROMTEXT('LINESTRING(0 0,5 5,10 10)'));
|
|
|
|
INSERT INTO gis_linestring VALUES
|
|
(204, ST_LINESTRINGFROMTEXT('LINESTRING(10 10,5 5)')),
|
|
(205, ST_LINESTRINGFROMTEXT('LINESTRING(0 0,12 12,24 24)')),
|
|
(206, ST_LINESTRINGFROMTEXT('LINESTRING(0 0,50 50,100 100)'));
|
|
|
|
INSERT INTO gis_linestring VALUES
|
|
(207, ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5))))),
|
|
(208, ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,10))))),
|
|
(209, ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)))));
|
|
|
|
INSERT INTO gis_linestring VALUES
|
|
(210, ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5))))),
|
|
(211, ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(-50,-50), POINT(10,-10))))),
|
|
(212, ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(1e308,1e308), POINT(1e308,-1e308)))));
|
|
|
|
INSERT INTO gis_linestring VALUES
|
|
(213, ST_LINEFROMWKB(ST_ASWKB(ST_LINEFROMTEXT('LINESTRING(1e308 1e308,1e308 -1e308)')))),
|
|
(214, ST_LINEFROMWKB(ST_ASWKB(ST_LINEFROMTEXT('LINESTRING(1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9)')))),
|
|
(215, ST_LINESTRINGFROMWKB(ST_ASWKB(ST_LINESTRINGFROMTEXT('LINESTRING(10 10,10 -10,-10 -10,-10 10,10 10)'))));
|
|
|
|
--echo # Displaying the inserted LINESTRING Geometry Data
|
|
SELECT fid, ST_ASTEXT(g) FROM gis_linestring;
|
|
|
|
--echo # Checking the integrity of the above insert statements
|
|
SELECT COUNT(g) FROM gis_linestring;
|
|
|
|
SELECT COUNT(ST_ASTEXT(g)) FROM gis_linestring;
|
|
|
|
SELECT COUNT(DISTINCT(g)) FROM gis_linestring;
|
|
|
|
SELECT COUNT(DISTINCT(ST_ASTEXT(g))) FROM gis_linestring;
|
|
|
|
############################################################################################
|
|
# Inserting POLYGON Geometry values #
|
|
############################################################################################
|
|
|
|
--echo # Inserting POLYGON Geometry Values
|
|
|
|
INSERT INTO gis_polygon VALUES
|
|
(301, ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5, 0 0))')),
|
|
(302, ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,5 0,0 0))')),
|
|
(303, ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))'));
|
|
|
|
INSERT INTO gis_polygon VALUES
|
|
(304, ST_POLYGONFROMTEXT('POLYGON((0 0,0 50,50 50,50 0,0 0))')),
|
|
(305, ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))')),
|
|
(306, ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))'));
|
|
|
|
INSERT INTO gis_polygon VALUES
|
|
(307, ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0)))))),
|
|
(308, ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0)))))),
|
|
(309, ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))));
|
|
|
|
INSERT INTO gis_polygon VALUES
|
|
(310, ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0)))))),
|
|
(311, ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(10,10), POINT(10,15), POINT(15,15), POINT(15,10), POINT(10,10)))))),
|
|
(312, ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(10,10), POINT(10,20), POINT(20,20), POINT(20,10), POINT(10,10)),
|
|
LINESTRING(POINT(14,14), POINT(14,16), POINT(16,16), POINT(16,14), POINT(14,14))))));
|
|
|
|
INSERT INTO gis_polygon VALUES
|
|
(313, ST_POLYFROMWKB(ST_ASWKB(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,5 5,0 0))')))),
|
|
(314, ST_POLYFROMWKB(ST_ASWKB(ST_POLYGONFROMTEXT('POLYGON((10 0,10 10,0 10,-10 10,-10 0,-10 -10,0 10,10 -10,10 0))')))),
|
|
(315, ST_POLYGONFROMWKB(ST_ASWKB(ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))'))));
|
|
|
|
--echo # Displaying the inserted POLYGON Geometry Data
|
|
SELECT fid, ST_ASTEXT(g) FROM gis_polygon;
|
|
|
|
--echo # Checking the integrity of the above insert statements
|
|
SELECT COUNT(g) FROM gis_polygon;
|
|
|
|
SELECT COUNT(ST_ASTEXT(g)) FROM gis_polygon;
|
|
|
|
SELECT COUNT(DISTINCT(g)) FROM gis_polygon;
|
|
|
|
SELECT COUNT(DISTINCT(ST_ASTEXT(g))) FROM gis_polygon;
|
|
|
|
############################################################################################
|
|
# Inserting MULTIPOINT Geometry values #
|
|
############################################################################################
|
|
|
|
--echo # Inserting MULTIPOINT Geometry Values
|
|
|
|
INSERT INTO gis_multi_point VALUES
|
|
(401, ST_MPOINTFROMTEXT('MULTIPOINT(0 0)')),
|
|
(402, ST_MPOINTFROMTEXT('MULTIPOINT(0 0,2 2,4 4)')),
|
|
(403, ST_MPOINTFROMTEXT('MULTIPOINT(0 0,5 5,10 10)'));
|
|
|
|
INSERT INTO gis_multi_point VALUES
|
|
(404, ST_MULTIPOINTFROMTEXT('MULTIPOINT(0 0,100 100)')),
|
|
(405, ST_MULTIPOINTFROMTEXT('MULTIPOINT(0 0,1e308 1e308)')),
|
|
(406, ST_MULTIPOINTFROMTEXT('MULTIPOINT(1e308 1e308,1e308 -1e308,-1e308 1e308,-1e308 -1e308)'));
|
|
|
|
INSERT INTO gis_multi_point VALUES
|
|
(407, ST_MPOINTFROMWKB(ST_ASWKB(MULTIPOINT(POINT(0,0))))),
|
|
(408, ST_MPOINTFROMWKB(ST_ASWKB(MULTIPOINT(POINT(0,0), POINT(10,10))))),
|
|
(409, ST_MPOINTFROMWKB(ST_ASWKB(MULTIPOINT(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6)))));
|
|
|
|
INSERT INTO gis_multi_point VALUES
|
|
(410, ST_MULTIPOINTFROMWKB(ST_ASWKB(MULTIPOINT(POINT(0,0))))),
|
|
(411, ST_MULTIPOINTFROMWKB(ST_ASWKB(MULTIPOINT(POINT(0,0), POINT(1e308,1e308))))),
|
|
(412, ST_MULTIPOINTFROMWKB(ST_ASWKB(MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308), POINT(-1e308,-1e308)))));
|
|
|
|
INSERT INTO gis_multi_point VALUES
|
|
(413, ST_MPOINTFROMWKB(ST_ASWKB(ST_MPOINTFROMTEXT('MULTIPOINT(0 0)')))),
|
|
(414, ST_MPOINTFROMWKB(ST_ASWKB(ST_MPOINTFROMTEXT('MULTIPOINT(0 0,1e308 1e308,-1e308 -1e308)')))),
|
|
(415, ST_MPOINTFROMWKB(ST_ASWKB(ST_MPOINTFROMTEXT('MULTIPOINT(1e308 1e308,1e308 -1e308,-1e308 1e308,-1e308 -1e308,1e308 1e308)'))));
|
|
|
|
--echo # Displaying the inserted MULTIPOINT Geometry Data
|
|
SELECT fid, ST_ASTEXT(g) FROM gis_multi_point;
|
|
|
|
--echo # Checking the integrity of the above insert statements
|
|
SELECT COUNT(g) FROM gis_multi_point;
|
|
|
|
SELECT COUNT(ST_ASTEXT(g)) FROM gis_multi_point;
|
|
|
|
SELECT COUNT(DISTINCT(g)) FROM gis_multi_point;
|
|
|
|
SELECT COUNT(DISTINCT(ST_ASTEXT(g))) FROM gis_multi_point;
|
|
|
|
############################################################################################
|
|
# Inserting MULTILINESTRING Geometry values #
|
|
############################################################################################
|
|
|
|
--echo # Inserting MULTILINESTRING Geometry Values
|
|
|
|
INSERT INTO gis_multi_linestring VALUES
|
|
(501, ST_MLINEFROMTEXT('MULTILINESTRING((0 0,2 2))')),
|
|
(502, ST_MLINEFROMTEXT('MULTILINESTRING((0 0,2 2,4 4))')),
|
|
(503, ST_MLINEFROMTEXT('MULTILINESTRING((0 0,2 2,4 4),(6 6,8 8,10 10))'));
|
|
|
|
INSERT INTO gis_multi_linestring VALUES
|
|
(504, ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,100 100,-100 -100))')),
|
|
(505, ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((1e308 1e308,-1e308 -1e308))')),
|
|
(506, ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((1e308 1e308,-1e308 -1e308),(1e308 -1e308,-1e308 1e308))'));
|
|
|
|
INSERT INTO gis_multi_linestring VALUES
|
|
(507, ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2)))))),
|
|
(508, ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(12,12), POINT(24,24)))))),
|
|
(509, ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4)),
|
|
LINESTRING(POINT(6,6), POINT(8,8), POINT(10,10))))));
|
|
|
|
INSERT INTO gis_multi_linestring VALUES
|
|
(510, ST_MULTILINESTRINGFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4)))))),
|
|
(511, ST_MULTILINESTRINGFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(1,1), POINT(2,2)))))),
|
|
(512, ST_MULTILINESTRINGFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(12,12), POINT(24,24)),
|
|
LINESTRING(POINT(36,36), POINT(48,48), POINT(50,50))))));
|
|
|
|
INSERT INTO gis_multi_linestring VALUES
|
|
(513, ST_MLINEFROMWKB(ST_ASWKB(ST_MLINEFROMTEXT('MULTILINESTRING((0 0,10 10),(0 10,10 0))')))),
|
|
(514, ST_MLINEFROMWKB(ST_ASWKB(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,10 10,-10 10,0 0),(0 0,-10 -10,10 -10,0 0))')))),
|
|
(515, ST_MULTILINESTRINGFROMWKB(ST_ASWKB(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,0 100),(0 0,100 0),(0 0,0 -100),(0 0,-100 0))'))));
|
|
|
|
--echo # Displaying the inserted MULTILINESTRING Geometry Data
|
|
SELECT fid, ST_ASTEXT(g) FROM gis_multi_linestring;
|
|
|
|
--echo # Checking the integrity of the above insert statements
|
|
SELECT COUNT(g) FROM gis_multi_linestring;
|
|
|
|
SELECT COUNT(ST_ASTEXT(g)) FROM gis_multi_linestring;
|
|
|
|
SELECT COUNT(DISTINCT(g)) FROM gis_multi_linestring;
|
|
|
|
SELECT COUNT(DISTINCT(ST_ASTEXT(g))) FROM gis_multi_linestring;
|
|
|
|
############################################################################################
|
|
# Inserting MULTIPOLYGON Geometry values #
|
|
############################################################################################
|
|
|
|
--echo # Inserting MULTIPOLGYON Geometry Values
|
|
|
|
INSERT INTO gis_multi_polygon VALUES
|
|
(601, ST_MPOLYFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)))')),
|
|
(602, ST_MPOLYFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)),((5 5,5 10,10 10,5 5)))')),
|
|
(603, ST_MPOLYFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4)))'));
|
|
|
|
INSERT INTO gis_multi_polygon VALUES
|
|
(604, ST_MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5, 0 0)))')),
|
|
(605, ST_MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4, 4 4)),((0 0,0 -2,-2 -2, 0 0)))')),
|
|
(606, ST_MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,5 5,-5 5,0 0)),((0 0,-5 -5,5 -5,0 0)))'));
|
|
|
|
INSERT INTO gis_multi_polygon VALUES
|
|
(607, ST_MPOLYFROMWKB(ST_ASWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(5,0), POINT(5,5), POINT(0,5), POINT(0,0))))))),
|
|
(608, ST_MPOLYFROMWKB(ST_ASWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))))),
|
|
(609, ST_MPOLYFROMWKB(ST_ASWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(5,0), POINT(5,5), POINT(0,5), POINT(0,0))),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))));
|
|
|
|
INSERT INTO gis_multi_polygon VALUES
|
|
(610, ST_MULTIPOLYGONFROMWKB(ST_ASWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0))))))),
|
|
(611, ST_MULTIPOLYGONFROMWKB(ST_ASWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(10,10), POINT(20,10), POINT(20,20), POINT(10,20), POINT(10,10)),
|
|
LINESTRING(POINT(14,14), POINT(14,16), POINT(16,16), POINT(16,14), POINT(14,14))))))),
|
|
(612, ST_MULTIPOLYGONFROMWKB(ST_ASWKB(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(-5,0), POINT(-5,-5), POINT(0,-5), POINT(0,0)))))));
|
|
|
|
INSERT INTO gis_multi_polygon VALUES
|
|
(613, ST_MPOLYFROMWKB(ST_ASWKB(ST_MPOLYFROMTEXT('MULTIPOLYGON(((0 0,5 5,5 -5,0 0)),((0 0,-5 5,-5 -5,0 0)))')))),
|
|
(614, ST_MPOLYFROMWKB(ST_ASWKB(ST_MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,10 10,-10 10,0 0)),((0 0,-10 -10,10 -10,0 0)))')))),
|
|
(615, ST_MULTIPOLYGONFROMWKB(ST_ASWKB(ST_MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,5 5,10 0,5 -5,0 0)))'))));
|
|
|
|
--echo # Displaying the inserted MULTIPOLYGON Geometry Data
|
|
SELECT fid, ST_ASTEXT(g) FROM gis_multi_polygon;
|
|
|
|
--echo # Checking the integrity of the above insert statements
|
|
SELECT COUNT(g) FROM gis_multi_polygon;
|
|
|
|
SELECT COUNT(ST_ASTEXT(g)) FROM gis_multi_polygon;
|
|
|
|
SELECT COUNT(DISTINCT(g)) FROM gis_multi_polygon;
|
|
|
|
SELECT COUNT(DISTINCT(ST_ASTEXT(g))) FROM gis_multi_polygon;
|
|
|
|
############################################################################################
|
|
# Inserting GEOMETRYCOLLECTION Geometry values #
|
|
############################################################################################
|
|
|
|
--echo # Inserting GEOMETRYCOLLECTION Geometry Values
|
|
|
|
INSERT INTO gis_geometrycollection VALUES
|
|
(701, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))')),
|
|
(702, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
|
|
(703, ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(5 5), POLYGON((0 0,0 10,10 10,10 0,0 0)))'));
|
|
|
|
INSERT INTO gis_geometrycollection VALUES
|
|
(704, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
|
|
(705, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),'
|
|
'LINESTRING(0 0,10 10),'
|
|
'POLYGON((0 0,0 10,10 10,10 0, 0 0)))')),
|
|
(706, ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(0 0,5 5,10 10),'
|
|
'MULTILINESTRING((0 0,10 10),(0 10,10 0)),'
|
|
'MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),'
|
|
'((0 0,-10 0,-10 -10,0 -10,0 0))))'));
|
|
|
|
INSERT INTO gis_geometrycollection VALUES
|
|
(707, ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0))))),
|
|
(708, ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0),
|
|
LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))))),
|
|
(709, ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(MULTIPOINT(POINT(0,0), POINT(5,5), POINT(10,10)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)),
|
|
LINESTRING(POINT(10,10), POINT(5,5), POINT(0,10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(-10,0), POINT(-10,-10), POINT(0,0))))))));
|
|
|
|
INSERT INTO gis_geometrycollection VALUES
|
|
(710, ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0),
|
|
LINESTRING(POINT(0,0), POINT(100,100)))))),
|
|
(711, ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(10,10),
|
|
LINESTRING(POINT(10,10), POINT(12,12), POINT(14,14), POINT(16,16), POINT(18,18)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))))),
|
|
(712, ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(MULTIPOINT(POINT(10,10), POINT(15,15), POINT(20,20)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)),
|
|
LINESTRING(POINT(10,10), POINT(5,5), POINT(0,10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,10), POINT(10,10), POINT(10,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(-10,0), POINT(-10,-10), POINT(0,0))))))));
|
|
|
|
INSERT INTO gis_geometrycollection VALUES
|
|
(713, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,10 10),'
|
|
'POLYGON((0 0,0 10,10 10,10 0, 0 0)),'
|
|
'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'MULTILINESTRING((0 0,10 10),(0 10,10 0)),'
|
|
'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))')))),
|
|
(714, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION('
|
|
'POINT(0 0)),'
|
|
'GEOMETRYCOLLECTION('
|
|
'LINESTRING(0 0,10 10)),'
|
|
'GEOMETRYCOLLECTION('
|
|
'POLYGON((0 0,0 10,10 10,10 0, 0 0))),'
|
|
'GEOMETRYCOLLECTION('
|
|
'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10)),'
|
|
'GEOMETRYCOLLECTION('
|
|
'MULTILINESTRING((0 0,10 10),(0 10,10 0))),'
|
|
'GEOMETRYCOLLECTION('
|
|
'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))))')))),
|
|
(715, ST_GEOMCOLLFROMWKB(ST_ASWKB(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION(),'
|
|
'POINT(0 0),'
|
|
'GEOMETRYCOLLECTION('
|
|
'LINESTRING(0 0,10 10),'
|
|
'GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION())),'
|
|
'GEOMETRYCOLLECTION(),'
|
|
'GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION()),'
|
|
'POLYGON((0 0,0 10,10 10,10 0, 0 0)),'
|
|
'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'MULTILINESTRING((0 0,10 10),(0 10,10 0)),'
|
|
'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))'))));
|
|
|
|
--echo # Displaying the inserted GEOMETRYCOLLECTION Geometry Data
|
|
SELECT fid, ST_ASTEXT(g) FROM gis_geometrycollection;
|
|
|
|
--echo # Checking the integrity of the above insert statements
|
|
SELECT COUNT(g) FROM gis_geometrycollection;
|
|
|
|
SELECT COUNT(ST_ASTEXT(g)) FROM gis_geometrycollection;
|
|
|
|
SELECT COUNT(DISTINCT(g)) FROM gis_geometrycollection;
|
|
|
|
SELECT COUNT(DISTINCT(ST_ASTEXT(g))) FROM gis_geometrycollection;
|
|
|
|
############################################################################################
|
|
# POINT geometry property functions #
|
|
############################################################################################
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_X(point)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(0 0)'));
|
|
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(10 10)'));
|
|
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(1e308 1e308)'));
|
|
|
|
SELECT ST_X(ST_POINTFROMWKB(ST_ASWKB(POINT(1.1111,-1.1111))));
|
|
|
|
SELECT ST_X(ST_POINTFROMWKB(ST_ASWKB(POINT(10.0000,10.0000))));
|
|
|
|
SELECT ST_X(ST_POINTFROMWKB(ST_ASWKB(POINT(-1e308,-1e308))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_Y(point)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(0 0)'));
|
|
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(10 10)'));
|
|
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(1e308 1e308)'));
|
|
|
|
SELECT ST_Y(ST_POINTFROMWKB(ST_ASWKB(POINT(1.1111,-1.1111))));
|
|
|
|
SELECT ST_Y(ST_POINTFROMWKB(ST_ASWKB(POINT(10.0000,10.0000))));
|
|
|
|
SELECT ST_Y(ST_POINTFROMWKB(ST_ASWKB(POINT(-1e308,-1e308))));
|
|
|
|
############################################################################################
|
|
# LINESTRING geometry property functions #
|
|
############################################################################################
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_ISCLOSED(linestring)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_ISCLOSED(ST_LINEFROMTEXT('LINESTRING(0 0,2 2)'));
|
|
|
|
SELECT ST_ISCLOSED(ST_LINEFROMTEXT('LINESTRING(0 0,2 2,0 0)'));
|
|
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0)'));
|
|
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)'));
|
|
|
|
SELECT ST_ISCLOSED(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10)))));
|
|
|
|
SELECT ST_ISCLOSED(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10), POINT(0,0)))));
|
|
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10)))));
|
|
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10), POINT(0,0)))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_LENGTH(linestring)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_LENGTH(ST_LINEFROMTEXT('LINESTRING(0 0,2 2)'));
|
|
|
|
SELECT ST_LENGTH(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)'));
|
|
|
|
SELECT ST_LENGTH(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-10,-10)))));
|
|
|
|
SELECT ST_LENGTH(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-5,5), POINT(0,0)))));
|
|
|
|
SELECT ST_LENGTH(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10)))));
|
|
|
|
SELECT ST_LENGTH(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10), POINT(0,0)))));
|
|
|
|
--echo # Cartesian SRS
|
|
SELECT ST_LENGTH(ST_GEOMFROMTEXT('LINESTRING(0 0,2 2,4 4,6 6,8 8, 10 10, 10 10)', 2000));
|
|
|
|
--echo # Geographic SRS
|
|
--echo # Different result on Windows and Linux, need to use ROUND
|
|
SELECT ROUND(ST_LENGTH(ST_GEOMFROMTEXT('LINESTRING(0 0,2 2,4 4,6 6,8 8, 10 10, 10 10)', 4326)),7);
|
|
|
|
--echo # Infinite Linestring
|
|
--error ER_DATA_OUT_OF_RANGE
|
|
SELECT ST_LENGTH(ST_GEOMFROMTEXT('LINESTRING(1e-300 0,1e300 0,1e-300 0,1e300 0,1e-300 0, 1e300 0, 1e-300 0)', 0));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_NUMPOINTS(linestring)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMTEXT('LINESTRING(0 0,2 2)'));
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMTEXT('LINESTRING(0 0,1e308 1e308)'));
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMTEXT('LINESTRING(1e308 1e308,-1e308 -1e308)'));
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)'));
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-10,-10)))));
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-5,5), POINT(0,0)))));
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10)))));
|
|
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10), POINT(0,0)))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_STARTPOINT(linestring)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINEFROMTEXT('LINESTRING(0 0,2 2)')));
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINEFROMTEXT('LINESTRING(0 0,1e308 1e308)')));
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(1e308 1e308,-1e308 -1e308)')));
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)')));
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-10,-10))))));
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-5,5), POINT(0,0))))));
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10))))));
|
|
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10), POINT(0,0))))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_ENDPOINT(linestring)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINEFROMTEXT('LINESTRING(0 0,2 2)')));
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINEFROMTEXT('LINESTRING(0 0,1e308 1e308)')));
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(1e308 1e308,-1e308 -1e308)')));
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)')));
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-10,-10))))));
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-5,5), POINT(0,0))))));
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10))))));
|
|
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10), POINT(0,0))))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_POINTN(linestring, number)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINEFROMTEXT('LINESTRING(0 0,2 2)'), 1));
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINEFROMTEXT('LINESTRING(0 0,1e308 1e308)'), 2));
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(1e308 1e308,-1e308 -1e308)'), 2));
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)'), 3));
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-10,-10)))), 3));
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(5,5), POINT(-5,5), POINT(0,0)))), 4));
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10)))), 4));
|
|
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(10,10), POINT(10,0), POINT(0,10), POINT(0,0)))), 4));
|
|
|
|
############################################################################################
|
|
# POLYGON geometry property functions #
|
|
############################################################################################
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_NUMINTERIORRINGS(polygon)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,5 0,0 0))'));
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))'));
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))'));
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMTEXT('POLYGON((0 0,0 -115,-115 -115,-115 0,0 0))'));
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0))))));
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))));
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)),
|
|
LINESTRING(POINT(8,8), POINT(8,10), POINT(10,10), POINT(10,8), POINT(8,8))))));
|
|
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(110,110), POINT(110,5), POINT(5,5), POINT(110,110))))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_EXTERIORRING(polygon)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,5 0,0 0))')));
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))')));
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))')));
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYGONFROMTEXT('POLYGON((0 0,0 -115,-115 -115,-115 0,0 0))')));
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0)))))));
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))));
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)),
|
|
LINESTRING(POINT(8,8), POINT(8,10), POINT(10,10), POINT(10,8), POINT(8,8)))))));
|
|
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(110,110), POINT(110,5), POINT(5,5), POINT(110,110)))))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_INTERIORRINGN(polygon, number)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYFROMTEXT('POLYGON((0 0,0 5,5 5,5 0,0 0))'), 1));
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))'), 1));
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))'), 2));
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 -115,-115 -115,-115 0,0 0))'), 1));
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,5), POINT(5,5), POINT(0,0))))), 1));
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))), 1));
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,15), POINT(15,15), POINT(15,0), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)),
|
|
LINESTRING(POINT(8,8), POINT(8,10), POINT(10,10), POINT(10,8), POINT(8,8))))), 2));
|
|
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(110,110), POINT(110,5), POINT(5,5), POINT(110,110))))), 2));
|
|
|
|
############################################################################################
|
|
# MULTULINESTRING geometry property functions #
|
|
############################################################################################
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_ISCLOSED(multilinestring)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMTEXT('MULTILINESTRING((0 0,10 0,0 0))'));
|
|
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMTEXT('MULTILINESTRING((0 0,10 0),(0 0,-10 0,0 0))'));
|
|
|
|
SELECT ST_ISCLOSED(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,10 10,0 0),(0 0,-10 -10,0 0))'));
|
|
|
|
SELECT ST_ISCLOSED(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,5 0,0 0),(0 0,0 5),(0 0,-5 0),(0 0,0 -5))'));
|
|
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(0,0))))));
|
|
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(1e308,1e308))))));
|
|
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(10,10), POINT(0,0)),
|
|
LINESTRING(POINT(1e308,1e308), POINT(-1e308,-1e308), POINT(1e308,1e308))))));
|
|
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(1e10,1e10))))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_LENGTH(multilinestring)
|
|
--echo #====================================================================================
|
|
|
|
SELECT ST_LENGTH(ST_MLINEFROMTEXT('MULTILINESTRING((0 0,10 0,0 0))'));
|
|
|
|
SELECT ST_LENGTH(ST_MLINEFROMTEXT('MULTILINESTRING((0 0,10 0,0 0),(0 0,-10 0,0 0))'));
|
|
|
|
SELECT ST_LENGTH(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,10 10,0 0),(0 0,-10 -10,0 0))'));
|
|
|
|
SELECT ST_LENGTH(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,5 0),(0 0,0 5),(0 0,-5 0),(0 0,0 -5))'));
|
|
|
|
SELECT ST_LENGTH(ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(0,0))))));
|
|
|
|
SELECT ST_LENGTH(ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(0,0), POINT(1e10,1e10))))));
|
|
|
|
--echo # Cartesian SRS
|
|
SELECT ST_LENGTH(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,5 0),(0 0,0 5),(0 0,-5 0),(0 0,0 -5))', 2000));
|
|
|
|
--echo # Geographic SRS
|
|
SELECT ROUND(ST_LENGTH(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((0 0,5 0),(0 0,0 5),(0 0,-5 0),(0 0,0 -5))', 4326)), 7);
|
|
|
|
############################################################################################
|
|
# GEOMETRYCOLLECTION geometry property functions #
|
|
############################################################################################
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_NUMGEOMETRIES(geometrycollection)
|
|
--echo #====================================================================================
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))'));
|
|
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'POLYGON((0 0,0 5,5 5,5 0,0 0)))'));
|
|
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION('
|
|
'MULTIPOINT(0 0),'
|
|
'MULTILINESTRING((0 0,5 5,10 10),'
|
|
'(0 0,-5 -5,-10 -10)),'
|
|
'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),'
|
|
'((5 5,5 10,10 10,10 5,5 5))))'));
|
|
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'GEOMETRYCOLLECTION(),'
|
|
'GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION()),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10))'));
|
|
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
POINT(10,10),
|
|
LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))));
|
|
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10)),
|
|
LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,-10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(1,0), POINT(0,0))),
|
|
POLYGON(LINESTRING(POINT(2,2), POINT(2,13), POINT(13,13), POINT(13,2), POINT(2,2)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))))));
|
|
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
POINT(0,0),
|
|
LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))),
|
|
MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10)),
|
|
LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,-10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(1,0), POINT(0,0))),
|
|
POLYGON(LINESTRING(POINT(2,2), POINT(2,3), POINT(3,3), POINT(3,2), POINT(2,2))))))));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_GEOMETRYN(geometrycollection, number)
|
|
--echo #====================================================================================
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))'), 1));
|
|
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'POLYGON((0 0,0 5,5 5,5 0,0 0)))'), 2));
|
|
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION('
|
|
'MULTIPOINT(0 0),'
|
|
'MULTILINESTRING((0 0,5 5,10 10),'
|
|
'(0 0,-5 -5,-10 -10)),'
|
|
'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),'
|
|
'((5 5,5 10,10 10,10 5,5 5))))'), 3));
|
|
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'GEOMETRYCOLLECTION(),'
|
|
'GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION()),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10))'), 2));
|
|
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
POINT(10,10),
|
|
LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6), POINT(8,8)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4)))))), 2));
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10)),
|
|
LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,-10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(1,0), POINT(0,0))),
|
|
POLYGON(LINESTRING(POINT(2,2), POINT(2,13), POINT(13,13), POINT(13,2), POINT(2,2)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))))))), 3));
|
|
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
POINT(0,0),
|
|
LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))),
|
|
MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10)),
|
|
LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,-10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(1,0), POINT(0,0))),
|
|
POLYGON(LINESTRING(POINT(2,2), POINT(2,3), POINT(3,3), POINT(3,2), POINT(2,2))))))), 2));
|
|
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
POINT(0,0),
|
|
LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))),
|
|
MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10)),
|
|
LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,-10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(1,0), POINT(0,0))),
|
|
POLYGON(LINESTRING(POINT(2,2), POINT(2,3), POINT(3,3), POINT(3,2), POINT(2,2))))))), 5));
|
|
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(
|
|
POINT(0,0),
|
|
LINESTRING(POINT(0,0), POINT(2,2), POINT(4,4), POINT(6,6)),
|
|
POLYGON(LINESTRING(POINT(0,0), POINT(10,0), POINT(10,10), POINT(0,10), POINT(0,0)),
|
|
LINESTRING(POINT(4,4), POINT(4,6), POINT(6,6), POINT(6,4), POINT(4,4))),
|
|
MULTIPOINT(POINT(1e308,1e308), POINT(-1e308,1e308), POINT(1e308,-1e308)),
|
|
MULTILINESTRING(LINESTRING(POINT(0,0), POINT(5,5), POINT(10,10)),
|
|
LINESTRING(POINT(0,0), POINT(-5,-5), POINT(-10,-10))),
|
|
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(1,0), POINT(0,0))),
|
|
POLYGON(LINESTRING(POINT(2,2), POINT(2,3), POINT(3,3), POINT(3,2), POINT(2,2))))))), 6));
|
|
|
|
############################################################################################
|
|
# Invalid functions calls #
|
|
############################################################################################
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_X(point)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_X();
|
|
|
|
SELECT ST_X(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_X(ST_POINTFROMWKB());
|
|
|
|
SELECT ST_X(ST_POINTFROMWKB(NULL));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_X(ST_POINTFROMWKB(ST_ASWKB(POINT(1))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_X(ST_POINTFROMWKB(ST_ASWKB(POINT(1,a))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_X(ST_POINTFROMWKB(ST_ASWKB(POINT(a,b))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_X(ST_POINTFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_X(ST_POINTFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT()'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(1)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(a 1)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(1 1,2)'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT('!' 0)'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_Y(point)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_Y();
|
|
|
|
SELECT ST_Y(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_Y(ST_POINTFROMWKB());
|
|
|
|
SELECT ST_Y(ST_POINTFROMWKB(NULL));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_Y(ST_POINTFROMWKB(ST_ASWKB(POINT(1))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_Y(ST_POINTFROMWKB(ST_ASWKB(POINT(1,a))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_Y(ST_POINTFROMWKB(ST_ASWKB(POINT(a,b))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_Y(ST_POINTFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_Y(ST_POINTFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT()'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(1)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(a 1)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(1 1,2)'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT('!' 0)'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_ISCLOSED(linestring)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED();
|
|
|
|
SELECT ST_ISCLOSED(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED(ST_LINEFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED(ST_LINEFROMWKB(LINESTRING(POINT(0,0), POINT(2,2))), 2);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMWKB(LINESTRING(POINT(a,1), POINT(2,2))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMWKB(LINESTRING(POINT(a,1), POINT(2,b))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED(ST_LINEFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_LINEFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_LINEFROMTEXT('LINESTRING()'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_LINEFROMTEXT('LINESTRING(0)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMTEXT('LINESTRING(1 2,1'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMTEXT('LINESTRING(1 1,2 2,a 3)'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_ISCLOSED(ST_LINESTRINGFROMTEXT('LINESTRING('!' 0,1 1,2 2)'));
|
|
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_NUMPOINTS(linestring)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMPOINTS();
|
|
|
|
SELECT ST_NUMPOINTS(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(2,2)))), 2);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,2)))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,b)))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMTEXT('LINESTRING()'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMTEXT('LINESTRING(0)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMTEXT('LINESTRING(1 2,1'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMTEXT('LINESTRING(1 1,2 2,a 3)'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_NUMPOINTS(ST_LINESTRINGFROMTEXT('LINESTRING('!' 0,1 1,2 2)'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_STARTPOINT(linestring)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_STARTPOINT();
|
|
|
|
SELECT ST_STARTPOINT(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_STARTPOINT(ST_LINEFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_STARTPOINT(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(2,2)))), 2);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_STARTPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,2)))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_STARTPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,b)))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_STARTPOINT(ST_LINEFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_STARTPOINT(ST_LINEFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_STARTPOINT(ST_LINEFROMTEXT('LINESTRING()'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_STARTPOINT(ST_LINEFROMTEXT('LINESTRING(0)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_STARTPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(1 2,1'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_STARTPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(1 1,2 2,a 3)'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_STARTPOINT(ST_LINESTRINGFROMTEXT('LINESTRING('!' 0,1 1,2 2)'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_ENDPOINT(linestring)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ENDPOINT();
|
|
|
|
SELECT ST_ENDPOINT(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ENDPOINT(ST_LINEFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ENDPOINT(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(2,2)))), 2);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_ENDPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,2)))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_ENDPOINT(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,b)))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ENDPOINT(ST_LINEFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ENDPOINT(ST_LINEFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ENDPOINT(ST_LINEFROMTEXT('LINESTRING()'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ENDPOINT(ST_LINEFROMTEXT('LINESTRING(0)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ENDPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(1 2,1'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ENDPOINT(ST_LINESTRINGFROMTEXT('LINESTRING(1 1,2 2,a 3)'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_ENDPOINT(ST_LINESTRINGFROMTEXT('LINESTRING('!' 0,1 1,2 2)'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_POINTN(linestring, number)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_POINTN();
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_POINTN(NULL);
|
|
|
|
SELECT ST_POINTN(NULL, 1);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_POINTN(ST_LINEFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_POINTN(ST_LINEFROMWKB(ST_ASWKB(LINESTRING(POINT(0,0), POINT(2,2)))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,2)))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(a,1), POINT(2,b)))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMWKB(ST_ASWKB(LINESTRING(POINT(1,1), POINT(2,2)))), a);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_POINTN(ST_LINEFROMTEXT());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_POINTN(ST_LINEFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_POINTN(ST_LINEFROMTEXT('NULL'), 1);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_POINTN(ST_LINEFROMTEXT('LINESTRING()'), 2);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_POINTN(ST_LINEFROMTEXT('LINESTRING(0)'), 3);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(1 2,1'), 4);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(1 1,2 2,a 3)'), 5);
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING('!' 0,1 1,2 2)'), 6);
|
|
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,1 1,2 2)'), 0);
|
|
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,1 1,2 2)'), -1);
|
|
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,1 1,2 2)'), -1024);
|
|
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,1 1,2 2)'), 10000);
|
|
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,1 1,2 2)'), 1234567890);
|
|
|
|
SELECT ST_POINTN(ST_LINESTRINGFROMTEXT('LINESTRING(0 0,1 1,2 2)'), 'a');
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_NUMINTERIORRINGS(polygon)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMINTERIORRINGS();
|
|
|
|
SELECT ST_NUMINTERIORRINGS(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(0,0))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(a,0), POINT(0,1), POINT(1,1), POINT(0,0))))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(a,0), POINT(b,1), POINT(1,1), POINT(0,0))))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT('POLYGON(())'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT('POLYGON((0))'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMTEXT('POLYGON((0 0,0 4,4 4,0 0)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMTEXT('POLYGON((0 0,2 0,2))'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMTEXT('POLYGON((0 0,0 5,5 a,0 0))'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYGONFROMTEXT('POLYGON(('!' 0,2 0,2 4,0 0))'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_EXTERIORRING(polygon)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_EXTERIORRING();
|
|
|
|
SELECT ST_EXTERIORRING(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_EXTERIORRING(ST_POLYFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_EXTERIORRING(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(0,0))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_EXTERIORRING(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(a,0), POINT(0,1), POINT(1,1), POINT(0,0))))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_EXTERIORRING(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(a,0), POINT(b,1), POINT(1,1), POINT(0,0))))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_EXTERIORRING(ST_POLYFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_EXTERIORRING(ST_POLYFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_EXTERIORRING(ST_POLYFROMTEXT('POLYGON(())'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_EXTERIORRING(ST_POLYFROMTEXT('POLYGON((0))'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_EXTERIORRING(ST_POLYGONFROMTEXT('POLYGON((0 0,0 4,4 4,0 0)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_EXTERIORRING(ST_POLYGONFROMTEXT('POLYGON((0 0,2 0,2))'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_EXTERIORRING(ST_POLYGONFROMTEXT('POLYGON((0 0,0 5,5 a,0 0))'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_EXTERIORRING(ST_POLYGONFROMTEXT('POLYGON(('!' 0,2 0,2 4,0 0))'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_INTERIORRINGN(polygon, number)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_INTERIORRINGN();
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_INTERIORRINGN(NULL);
|
|
|
|
SELECT ST_INTERIORRINGN(NULL, 1);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_INTERIORRINGN(ST_POLYFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_INTERIORRINGN(ST_POLYFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(0,0))))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(a,0), POINT(0,1), POINT(1,1), POINT(0,0))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(a,0), POINT(b,1), POINT(1,1), POINT(0,0))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMWKB(ST_ASWKB(POLYGON(LINESTRING(POINT(0,0), POINT(0,1), POINT(1,1), POINT(0,0))))), a);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_INTERIORRINGN(ST_POLYFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_INTERIORRINGN(ST_POLYFROMTEXT('NULL'), 1);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_INTERIORRINGN(ST_POLYFROMTEXT('POLYGON(())'), 2);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_INTERIORRINGN(ST_POLYFROMTEXT('POLYGON((0))'), 3);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 4,4 4,0 0)'), 4);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,2 0,2))'), 5);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 5,5 a,0 0))'), 6);
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON(('!' 0,2 0,2 4,0 0))'), 7);
|
|
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 2,2 2,0 0))'), 0);
|
|
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 2,2 2,0 0))'), -1);
|
|
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 2,2 2,0 0))'), -1024);
|
|
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 2,2 2,0 0))'), 10000);
|
|
|
|
SELECT ST_INTERIORRINGN(ST_POLYGONFROMTEXT('POLYGON((0 0,0 2,2 2,0 0))'), 123456789);
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_ISCLOSED(multilinestring)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED();
|
|
|
|
SELECT ST_ISCLOSED(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(1,1), POINT(2,2))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_ISCLOSED(ST_MULTILINESTRINGFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(1,1), POINT(2,2), POINT(3,3), POINT(a,4))))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_ISCLOSED(ST_MULTILINESTRINGFROMWKB(ST_ASWKB(MULTILINESTRING(LINESTRING(POINT(1,1), POINT(2,2)), LINESTRING(POINT(3,3), POINT(a,4))))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_ISCLOSED(ST_POLYFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMTEXT('MULTILINESTRING(())'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMTEXT('MULTILINESTRING((1 1,2 2),()'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMTEXT('MULTILINESTRING((1 1,2 2,3 3)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((1 1,2 3,3 3,4))'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_ISCLOSED(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING((1 1,2 2,3 3,4 a))'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_ISCLOSED(ST_MULTILINESTRINGFROMTEXT('MULTILINESTRING(('!' 1,2 2,3 3,4 4'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_LENGTH(multilinestring)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_LENGTH();
|
|
|
|
SELECT ST_LENGTH(NULL);
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_NUMGEOMETRIES(geometrycollection)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMGEOMETRIES();
|
|
|
|
SELECT ST_NUMGEOMETRIES(NULL);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0), LINESTRING(POINT(1,1), POINT(2,2))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0), LINESTRING(POINT(a,1), POINT(2,2))))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,b), LINESTRING(POINT(a,1), POINT(2,2))))));
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('NULL'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(1)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0))'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2)'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2))'));
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 a))'));
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 '!'))'));
|
|
|
|
--echo #====================================================================================
|
|
--echo # ST_GEOMETRYN(geometrycollection, number)
|
|
--echo #====================================================================================
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_GEOMETRYN();
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_GEOMETRYN(NULL);
|
|
|
|
SELECT ST_GEOMETRYN(NULL, 1);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMWKB());
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0), LINESTRING(POINT(1,1), POINT(2,2))))));
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0), LINESTRING(POINT(a,1), POINT(2,2))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,b), LINESTRING(POINT(a,1), POINT(2,2))))), 1);
|
|
|
|
--error ER_BAD_FIELD_ERROR
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMWKB(ST_ASWKB(GEOMETRYCOLLECTION(POINT(0,0), LINESTRING(POINT(1,1), POINT(2,2))))), A);
|
|
|
|
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT());
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('NULL'), 1);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(1)'), 2);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0))'), 3);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2)'), 4);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2))'), 5);
|
|
|
|
--error ER_GIS_INVALID_DATA
|
|
SELECT ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 a))'), 6);
|
|
|
|
--error ER_PARSE_ERROR
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 '!'))'), 7);
|
|
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))'), 0);
|
|
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))'), -1);
|
|
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))'), -1024);
|
|
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))'), 10000);
|
|
|
|
SELECT ST_GEOMETRYN(ST_GEOMETRYCOLLECTIONFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))'), 123456789);
|
|
|
|
############################################################################################
|
|
# Checking the procedure to work with Point and MultiPoint properties #
|
|
############################################################################################
|
|
|
|
--echo # Check procedure to work with Point and MultiPoint properties
|
|
|
|
DELIMITER |;
|
|
CREATE PROCEDURE point_attri()
|
|
BEGIN
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(0 0)'));
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(1.1111 -1.1111)'));
|
|
SELECT ST_X(ST_POINTFROMTEXT('POINT(1e308 1e308)'));
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(0 0)'));
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(1.1111 -1.1111)'));
|
|
SELECT ST_Y(ST_POINTFROMTEXT('POINT(1e308 1e308)'));
|
|
END |
|
|
DELIMITER ;|
|
|
|
|
--echo # Call the proc
|
|
CALL point_attri;
|
|
|
|
--echo # Dropping the created procedure
|
|
DROP PROCEDURE point_attri;
|
|
|
|
############################################################################################
|
|
# Checking the procedure to work with Linestring and MultiLinestring properties #
|
|
############################################################################################
|
|
|
|
--echo # Check procedure to work with Linestring and MultiLineString properties
|
|
|
|
DELIMITER |;
|
|
CREATE PROCEDURE line_attri()
|
|
BEGIN
|
|
SELECT ST_ISCLOSED(ST_LINEFROMTEXT('LINESTRING(0 0,1 1,2 2,0 0)'));
|
|
SELECT ST_NUMPOINTS(ST_LINEFROMTEXT('LINESTRING(0 0,1 1,2 2,0 0)'));
|
|
SELECT ST_LENGTH(ST_LINEFROMTEXT('LINESTRING(0 0,10 0,0 0,-10 0,0 0,0 10,0 0,0 -10,0 0)'));
|
|
SELECT ST_ASTEXT(ST_STARTPOINT(ST_LINEFROMTEXT('LINESTRING(0 0,1 1,2 2,0 0)')));
|
|
SELECT ST_ASTEXT(ST_ENDPOINT(ST_LINEFROMTEXT('LINESTRING(0 0,1 1,2 2,3 3,0 0)')));
|
|
SELECT ST_ASTEXT(ST_POINTN(ST_LINEFROMTEXT('LINESTRING(0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9)'), 8));
|
|
SELECT ST_ISCLOSED(ST_MLINEFROMTEXT('MULTILINESTRING((0 0,1 1,2 2,0 0),(0 0,-1 -1,-2 -2,0 0))'));
|
|
SELECT ST_LENGTH(ST_MLINEFROMTEXT('MULTILINESTRING((0 0,10 0),(0 0,0 10),(0 0,-10 0),(0 0,0 -10))'));
|
|
END |
|
|
DELIMITER ;|
|
|
|
|
--echo # Call the proc
|
|
CALL line_attri;
|
|
|
|
--echo # Dropping the created procedure
|
|
DROP PROCEDURE line_attri;
|
|
|
|
############################################################################################
|
|
# Checking the procedure to work with Polygon and MultiPolygon properties #
|
|
############################################################################################
|
|
|
|
DELIMITER |;
|
|
CREATE PROCEDURE poly_attri()
|
|
BEGIN
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))'));
|
|
SELECT ST_NUMINTERIORRINGS(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))'));
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))')));
|
|
SELECT ST_ASTEXT(ST_EXTERIORRING(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))')));
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))'), 1));
|
|
SELECT ST_ASTEXT(ST_INTERIORRINGN(ST_POLYFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6))'), 2));
|
|
END |
|
|
DELIMITER ;|
|
|
|
|
--echo # Call the proc
|
|
CALL poly_attri;
|
|
|
|
--echo # Dropping the created procedure
|
|
DROP PROCEDURE poly_attri;
|
|
|
|
############################################################################################
|
|
# Checking the procedure to work with GeometryCollection properties #
|
|
############################################################################################
|
|
|
|
DELIMITER |;
|
|
CREATE PROCEDURE geom_coll_attri()
|
|
BEGIN
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'POLYGON((0 0,0 5,5 5,5 0,0 0)))'));
|
|
SELECT ST_NUMGEOMETRIES(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION()),'
|
|
'POLYGON((0 0,0 5,5 5,5 0,0 0)))'));
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'POLYGON((0 0,0 5,5 5,5 0,0 0)))'), 3));
|
|
SELECT ST_ASTEXT(ST_GEOMETRYN(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'GEOMETRYCOLLECTION('
|
|
'GEOMETRYCOLLECTION()),'
|
|
'POLYGON((0 0,0 5,5 5,5 0,0 0)))'), 3));
|
|
END |
|
|
DELIMITER ;|
|
|
|
|
--echo # Call the proc
|
|
CALL geom_coll_attri;
|
|
|
|
--echo # Dropping the created procedure
|
|
DROP PROCEDURE geom_coll_attri;
|
|
|
|
--echo # Final cleanup
|
|
DROP TABLE gis_point;
|
|
DROP TABLE gis_linestring;
|
|
DROP TABLE gis_polygon;
|
|
DROP TABLE gis_multi_point;
|
|
DROP TABLE gis_multi_linestring;
|
|
DROP TABLE gis_multi_polygon;
|
|
DROP TABLE gis_geometrycollection;
|
|
|
|
--echo #
|
|
--echo # WL#8579 Spatial Reference Systems
|
|
--echo #
|
|
|
|
--echo # SRID 0 (should pass)
|
|
SELECT ST_LENGTH(ST_GEOMFROMTEXT('POINT(0 0)', 0));
|
|
|
|
--echo # Projected SRS (should pass)
|
|
SELECT ST_LENGTH(ST_GEOMFROMTEXT('POINT(0 0)', 2000));
|
|
|
|
--echo # Geographic SRS (should pass)
|
|
SELECT ST_LENGTH(ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
|
|
|
--echo #
|
|
--echo # WL#8579 Spatial Reference Systems
|
|
--echo # GIS functions that do not depend on any SRS
|
|
--echo #
|
|
|
|
DELIMITER |;
|
|
CREATE PROCEDURE geom_prop_func(IN srid INT)
|
|
BEGIN
|
|
SET @pt_geom = ST_GEOMFROMTEXT('POINT(10 20)', srid);
|
|
SET @ln_geom = ST_GEOMFROMTEXT('LINESTRING(0 0,2 2,4 4,6 6,8 8, 10 10)', srid);
|
|
SET @py_geom = ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))', srid);
|
|
SET @gc_geom = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
|
|
'POINT(0 0),'
|
|
'LINESTRING(0 0,10 10),'
|
|
'POLYGON((0 0,0 10,10 10,10 0, 0 0)),'
|
|
'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),'
|
|
'MULTILINESTRING((0 0,10 10),(0 10,10 0)),'
|
|
'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))', srid);
|
|
|
|
# GIS geometry property functions that do not depend on any SRS
|
|
DO ST_SRID(@pt_geom);
|
|
DO ST_ISEMPTY(@pt_geom);
|
|
DO ST_DIMENSION(@pt_geom);
|
|
DO ST_GEOMETRYTYPE(@pt_geom);
|
|
|
|
DO ST_X(@pt_geom);
|
|
DO ST_Y(@pt_geom);
|
|
|
|
DO ST_ISCLOSED(@ln_geom);
|
|
DO ST_NUMPOINTS(@ln_geom);
|
|
DO ST_ENDPOINT(@ln_geom);
|
|
DO ST_POINTN(@ln_geom, 2);
|
|
DO ST_STARTPOINT(@ln_geom);
|
|
|
|
DO ST_NUMINTERIORRING(@py_geom);
|
|
DO ST_NUMINTERIORRINGS(@py_geom);
|
|
DO ST_EXTERIORRING(@py_geom);
|
|
DO ST_INTERIORRINGN(@py_geom, 1);
|
|
|
|
DO ST_NUMGEOMETRIES(@gc_geom);
|
|
DO ST_GEOMETRYN(@gc_geom, 1);
|
|
END |
|
|
DELIMITER ;|
|
|
|
|
--echo # SRID 0 (should pass)
|
|
CALL geom_prop_func(0);
|
|
|
|
--echo # Projected SRS (should pass)
|
|
CALL geom_prop_func(2000);
|
|
|
|
--echo # Geographic SRS (should fail)
|
|
--error ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS
|
|
CALL geom_prop_func(4326);
|
|
|
|
# clean up
|
|
|
|
DROP PROCEDURE geom_prop_func;
|
|
|
|
--echo #
|
|
--echo # WL#11096 Don't do Cartesian computations on geographic geometries
|
|
--echo #
|
|
|
|
--echo # Assume SRID 10 is not defined.
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_ISCLOSED(x'0A0000000102000000020000000000000000000000000000000000000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_LENGTH(x'0A0000000102000000020000000000000000000000000000000000000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_SRID(ST_GEOMFROMTEXT('LINESTRING(0 0, 10 10)'), 10);
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_DIMENSION(x'0A000000010100000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_ENDPOINT(x'0A0000000102000000020000000000000000000000000000000000000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_EXTERIORRING(x'0A0000000103000000010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_GEOMETRYN(x'0A000000010700000001000000010100000000000000000000000000000000000000', 1);
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_INTERIORRINGN(x'0A0000000103000000010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 1);
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_ISEMPTY(x'0A000000010100000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_NUMGEOMETRIES(x'0A000000010700000001000000010100000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_NUMINTERIORRING(x'0A0000000103000000010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_NUMINTERIORRINGS(x'0A0000000103000000010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_NUMPOINTS(x'0A000000010400000001000000010100000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_NUMPOINTS(x'0A000000010400000001000000010100000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_POINTN(x'0A000000010400000001000000010100000000000000000000000000000000000000', 1);
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_STARTPOINT(x'0A0000000102000000020000000000000000000000000000000000000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_X(x'0A000000010100000000000000000000000000000000000000');
|
|
--error ER_SRS_NOT_FOUND
|
|
DO ST_Y(x'0A000000010100000000000000000000000000000000000000');
|
|
|
|
|
|
SET @LINE = ST_GEOMFROMTEXT( 'LINESTRING(0 0 , 1 1 )', 4326);
|
|
SET @MLINE = ST_GEOMFROMTEXT( 'MULTILINESTRING((0 0 , 1 1 ))', 4326);
|
|
--replace_numeric_round 5
|
|
SELECT ST_LENGTH( @LINE, 'METRE');
|
|
--replace_numeric_round 5
|
|
SELECT ST_LENGTH( @MLINE, 'METRE');
|
|
--error ER_UNIT_NOT_FOUND
|
|
SELECT ST_LENGTH( @LINE, 'METER');
|
|
SELECT ST_LENGTH( @LINE, NULL);
|
|
SELECT ST_LENGTH( NULL, 'FOOT');
|
|
SET @LINE = ST_GEOMFROMTEXT( 'LINESTRING(0 0 , 1 1 )', 32167);
|
|
SELECT ST_LENGTH( @LINE);
|
|
--replace_numeric_round 5
|
|
SELECT ST_LENGTH( @LINE, 'METRE');
|