ST_LineToCurve — Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON
geometry ST_LineToCurve(geometry  geomANoncircular);
Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. Note much fewer points are needed to describe the curved equivalent.
Availability: 1.2.2?
 This function supports 3d and will not drop the z-index.
 This function supports 3d and will not drop the z-index.
 This method supports Circular Strings and Curves
 This method supports Circular Strings and Curves
SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo.the_geom) As non_curvedastext
	FROM (SELECT ST_Buffer('POINT(1 3)'::geometry, 3) As the_geom) As foo;
curvedatext															non_curvedastext
------------------------------------------------------------------|	-----------------------------------------------------------------
CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359,	 |	POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 1.85194970290473
1 0,-1.12132034355965 5.12132034355963,4 3))						 | ,3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,
																	|				2.66671069905881 0.505591163092366,2.14805029709527 0.228361402466141,
																	|				1.58527096604839 0.0576441587903094,1 0,
																	|				0.414729033951621 0.0576441587903077,-0.148050297095264 0.228361402466137,
																	|				-0.666710699058802 0.505591163092361,-1.12132034355964 0.878679656440353,
																	|				-1.49440883690763 1.33328930094119,-1.77163859753386 1.85194970290472
																	|				--ETC-- ,3.94235584120969 3.58527096604839,4 3))
--3D example
SELECT ST_AsEWKT(ST_LineToCurve(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 8, 5 6 4, 7 8 4, 9 10 4)')));
			 st_asewkt
------------------------------------
 CIRCULARSTRING(1 2 3,5 6 4,9 10 4)