ST_IsValid function

The ST_IsValid function takes a geometry as an input parameter and returns 1 if it is valid. Otherwise 0 (zero) is returned.

A geometry is valid if the attributes are consistent and the internal representation is not corrupted.

If the specified geometry is null, then null is returned.

Syntax

Read syntax diagramSkip visual syntax diagramST_IsValid(geometry)

Parameter

geometry
A value of type ST_Geometry or one of its subtypes.

Return type

INTEGER

Example

This example creates several geometries and uses ST_IsValid to check if they are valid. All of the geometries are valid because the constructor routines, such as ST_Geometry, do not allow invalid geometries to be constructed.

CREATE TABLE sample_geoms (id INTEGER, geometry ST_Geometry)

INSERT INTO sample_geoms VALUES
       (1, ST_Geometry('point EMPTY',0))

INSERT INTO sample_geoms VALUES
       (2, ST_Geometry('polygon((40 120, 90 120, 90 150, 40 150, 40 120))' ,0))

INSERT INTO sample_geoms VALUES
       (3, ST_Geometry('multipoint m (10 10 5, 50 10 6, 10 30 8)' ,0))

INSERT INTO sample_geoms VALUES
       (4, ST_Geometry('linestring z (10 10 166, 20 10 168)',0))

INSERT INTO sample_geoms VALUES
       (5, ST_Geometry('point zm (10 10 16 30)' ,0))


SELECT id, ST_IsValid(geometry)  Is_Valid
FROM sample_geoms

Results:

ID          IS_VALID
----------- -----------
          1           1
          2           1
          3           1
          4           1
          5           1