polardbxengine/mysql-test/suite/gis/t/st_latitude.test

92 lines
4.0 KiB
Plaintext

# This test tests the ST_LATITUDE function.
--echo # NULL as one of the parameters must result in NULL return value.
SELECT ST_LATITUDE(NULL);
SELECT ST_LATITUDE(NULL, NULL);
SELECT ST_LATITUDE(NULL, 1);
SELECT ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 4326), NULL);
--echo # Invalid data is not allowed.
--error ER_GIS_INVALID_DATA
DO ST_LATITUDE(x'000000000123456789abcdef');
--error ER_GIS_INVALID_DATA
DO ST_LATITUDE(x'000000000123456789abcdef', 1);
--echo # New value must be within the allowed range.
--error ER_LATITUDE_OUT_OF_RANGE
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 4326), -90.000000001);
--error ER_LATITUDE_OUT_OF_RANGE
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 90.000000001);
--echo # First parameter must be a point.
--echo # Cartesian SRID 0
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)', 0));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('POLYGON((0 0, 0 1, 1 1, 0 0))', 0));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOINT((0 0))', 0));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOINT((0 0), (1 1))', 0));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0, 1 1))', 0));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0, 0 1, 1 1, 0 0)))', 0));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))', 0));
--echo # Projected
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)', 3857));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('POLYGON((0 0, 0 1, 1 1, 0 0))', 3857));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOINT((0 0))', 3857));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOINT((0 0), (1 1))', 3857));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0, 1 1))', 3857));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0, 0 1, 1 1, 0 0)))', 3857));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))', 3857));
--echo # Geographic
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)', 4326));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('POLYGON((0 0, 0 1, 1 1, 0 0))', 4326));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOINT((0 0))', 4326));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOINT((0 0), (1 1))', 4326));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0, 1 1))', 4326));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0, 0 1, 1 1, 0 0)))', 4326));
--error ER_UNEXPECTED_GEOMETRY_TYPE
DO ST_LATITUDE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))', 4326));
--echo # Point must be geographic.
--error ER_SRS_NOT_GEOGRAPHIC
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 0));
--error ER_SRS_NOT_GEOGRAPHIC
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 3857));
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 4326));
--error ER_SRS_NOT_GEOGRAPHIC
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 0), 1);
--error ER_SRS_NOT_GEOGRAPHIC
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 3857), 1);
DO ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1);
--echo # Get or set the latitude of a point in a lat-long SRS.
SELECT ST_LATITUDE(ST_GEOMFROMTEXT('POINT(1 0)', 4326));
SELECT HEX(ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1));
--echo # Get or set the latitude of a point in a long-lat SRS.
SELECT ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 1)', 7035));
SELECT HEX(ST_LATITUDE(ST_GEOMFROMTEXT('POINT(0 0)', 7035), 1));
--echo # Get or set the latitude of a point in a lat-long SRS with a meridian
--echo # that doesn't go through Greenwich.
SELECT ST_LATITUDE(ST_GEOMFROMTEXT('POINT(1 0)', 4801));
SELECT HEX(ST_LATITUDE(ST_GEOMFROMTEXT('POINT(1 0)', 4801), 1));