ST_IsValid()

Returns 1 for a structurally valid geometry and 0 for an invalid geometry.

Syntax

ST_IsValid(geom)

Aliases: none.

Arguments

geom is a GEOMETRY or GEOMETRY32 value.

Return Value

Returns BOOL; NULL input returns NULL.

Usage Notes

  • A self-crossing polygon and a hole that touches its exterior ring are invalid.

  • Empty geometry collections are valid.

Examples

DROP DATABASE IF EXISTS geo_is_valid_demo;
CREATE DATABASE geo_is_valid_demo;
USE geo_is_valid_demo;

SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))')) AS valid_polygon,
       ST_IsValid(ST_GeomFromText('POLYGON((0 0, 4 4, 4 0, 0 4, 0 0))')) AS invalid_bowtie;

DROP DATABASE geo_is_valid_demo;

See Also

ST_IsSimple(), ST_Validate().