ST_IsValid — Returns
true if the
ST_Geometry is well formed.
boolean ST_IsValid(geometry g
boolean ST_IsValid(geometry g, integer flags
Test if an ST_Geometry value is well formed. For geometries that are invalid, the PostgreSQL NOTICE will provide details of why it is not valid. For more information on the OGC's definition of geometry simplicity and validity, refer to "Ensuring OpenGIS compliancy of geometries"
SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns NULL.
The version accepting flags is available starting with 2.0.0
and requires GEOS >= 3.3.0. Such version does not print a NOTICE
explaining the invalidity.
flags are documented in ST_IsValidDetail.
This method implements the OpenGIS Simple Features Implementation Specification for SQL 1.1.
This method implements the SQL/MM specification. SQL-MM 3: 5.1.9
Neither OGC-SFS nor SQL-MM specifications include a flag argument for ST_IsValid. The flag is a PostGIS extension.
SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line, ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As bad_poly --results NOTICE: Self-intersection at or near point 0 0 good_line | bad_poly -----------+---------- t | f