According to Boost.Geometry, geometries might become invalid as a result of the simplification process, and the process might create self-intersections. To check the validity of the result, pass it to ST_IsValid() . 

ST_Simplify()  handles its arguments as described in the introduction to this section, with this exception: 

•If the max_distance  argument is not positive, or is NaN , an ER_WRONG_ARGUMENTS  error occurs. 

mysql> SET @g = ST_GeomFromText(’LINESTRING(0 0,0 1,1 1,1 2,2 2,2 3,3 3)’); mysql> SELECT ST_AsText(ST_Simplify(@g, 0.5)); +---------------------------------+ | ST_AsText(ST_Simplify(@g, 0.5)) | +---------------------------------+ | LINESTRING(0 0,0 1,1 1,2 3,3 3) | +---------------------------------+ mysql> SELECT ST_AsText(ST_Simplify(@g, 1.0)); +---------------------------------+ | ST_AsText(ST_Simplify(@g, 1.0)) | +---------------------------------+ | LINESTRING(0 0,3 3) | +---------------------------------+ 

