This topic describes the ST_MakeValid function. This function converts an invalid input geometry object into a valid geometry object without deleting vertexes.


geometry  ST_MakeValid(geometry  input);


Parameter Description
input The geometry object that you want to specify.


  • This function processes only invalid geometry objects.
  • This function supports point objects, MultiPoint objects, LineString objects, MultiLineString objects, polygon objects, MultiPolygon objects, and GeometryCollection objects. The combination of the preceding objects is also supported.
  • If all or partial dimensions of the input geometry object are missing, this function returns a geometry object from lower dimensions or a collection of geometry objects from lower dimensions.
  • If you specify a polygon object that has self-intersections, this function may return a MULTI object.


Results returned by specifying a polygon object with self-intersections:
SELECT ST_AsText(ST_MakeValid('POLYGON((0 0,0 1,1 0,1 1,0 0))'));
 MULTIPOLYGON(((0 0,0 1,0.5 0.5,0 0)),((0.5 0.5,1 1,1 0,0.5 0.5.
(1 row)