How the DIMENSION() function works in Mariadb?
The DIMENSION()
function is a built-in function in Mariadb that returns the dimension of a geometry value.
The DIMENSION()
function is a built-in function in Mariadb that returns the dimension of a geometry value. The dimension is the topological dimension of the geometry, which is 0 for points, 1 for lines, and 2 for polygons. The DIMENSION()
function is a synonym for the ST_DIMENSION()
function, which follows the standard SQL/MM specification.
Syntax
The syntax of the DIMENSION()
function is as follows:
DIMENSION(g)
The parameter g
is a geometry value. The function returns an integer value that represents the dimension of the geometry. If g
is NULL
or not a valid geometry value, the function returns NULL
.
Examples
Here are some examples of using the DIMENSION()
function with different types of geometries.
Example 1: Point
A point is a zero-dimensional geometry, so the DIMENSION()
function returns 0 for a point.
SELECT DIMENSION(ST_GeomFromText('POINT (1 2)'));
The output is:
+-------------------------------------------+
| DIMENSION(ST_GeomFromText('POINT (1 2)')) |
+-------------------------------------------+
| 0 |
+-------------------------------------------+
Example 2: LineString
A line string is a one-dimensional geometry, so the DIMENSION()
function returns 1 for a line string.
SELECT DIMENSION(ST_GeomFromText('LineString (1 2,2 3,3 4,4 5)'));
The output is:
+------------------------------------------------------------+
| DIMENSION(ST_GeomFromText('LineString (1 2,2 3,3 4,4 5)')) |
+------------------------------------------------------------+
| 1 |
+------------------------------------------------------------+
Example 3: Polygon
A polygon is a two-dimensional geometry, so the DIMENSION()
function returns 2 for a polygon.
SET @poly = 'POLYGON ( (0 0,5 0,5 5,0 5,0 0), (1 1,2 1,2 2,1 2,1 1))';
SELECT DIMENSION(ST_GeomFromText(@poly));
The output is:
+-----------------------------------+
| DIMENSION(ST_GeomFromText(@poly)) |
+-----------------------------------+
| 2 |
+-----------------------------------+
Related Functions
There are some other functions that are related to the DIMENSION()
function in Mariadb. Here are some of them:
ST_DIMENSION()
: This function is equivalent to theDIMENSION()
function, but follows the standard SQL/MM specification. It can be used interchangeably with theDIMENSION()
function.GEOMETRYTYPE()
: This function returns the name of the geometry type of a geometry value, such asPOINT
,LINESTRING
, orPOLYGON
.ST_GEOMETRYTYPE()
: This function is similar to theGEOMETRYTYPE()
function, but follows the standard SQL/MM specification. It returns the name of the geometry type with aST_
prefix, such asST_POINT
,ST_LINESTRING
, orST_POLYGON
.SRID()
: This function returns the spatial reference system identifier (SRID) of a geometry value. The SRID is a numeric value that defines the coordinate system and projection of the geometry.ST_SRID()
: This function is similar to theSRID()
function, but follows the standard SQL/MM specification. It returns the same value as theSRID()
function.
For example, the following query shows the dimension, geometry type, and SRID of a point geometry.
SELECT DIMENSION(g), GEOMETRYTYPE(g), SRID(g) FROM (SELECT ST_GeomFromText('POINT (1 2)', 4326) AS g) AS t;
The output is:
+--------------+-----------------+----------+
| DIMENSION(g) | GEOMETRYTYPE(g) | SRID(g) |
+--------------+-----------------+----------+
| 0 | POINT | 4326 |
+--------------+-----------------+----------+
Conclusion
The DIMENSION()
function is a useful function in Mariadb that returns the dimension of a geometry value. The dimension is the topological dimension of the geometry, which is 0 for points, 1 for lines, and 2 for polygons. The DIMENSION()
function is a synonym for the ST_DIMENSION()
function, which follows the standard SQL/MM specification. There are some other functions that are related to the DIMENSION()
function, such as GEOMETRYTYPE()
, SRID()
, and their standard counterparts. These functions can help us to get more information about the geometry values in Mariadb.