PostGIS  2.5.0dev-r@@SVN_REVISION@@
Datum ST_GeneratePoints ( PG_FUNCTION_ARGS  )

Definition at line 1050 of file postgis/lwgeom_geos.c.

References gserialized_from_lwgeom(), lwgeom_free(), lwgeom_from_gserialized(), and lwgeom_to_points().

1051 {
1052  GSERIALIZED *gser_input;
1053  GSERIALIZED *gser_result;
1054  LWGEOM *lwgeom_input;
1055  LWGEOM *lwgeom_result;
1056  int32 npoints;
1057 
1058  gser_input = PG_GETARG_GSERIALIZED_P(0);
1059  npoints = DatumGetInt32(DirectFunctionCall1(numeric_int4, PG_GETARG_DATUM(1)));
1060 
1061  /* Smartasses get nothing back */
1062  if (npoints < 0)
1063  PG_RETURN_NULL();
1064 
1065  /* Types get checked in the code, we'll keep things small out there */
1066  lwgeom_input = lwgeom_from_gserialized(gser_input);
1067  lwgeom_result = (LWGEOM*)lwgeom_to_points(lwgeom_input, npoints);
1068  lwgeom_free(lwgeom_input);
1069  PG_FREE_IF_COPY(gser_input, 0);
1070 
1071  /* Return null as null */
1072  if (!lwgeom_result)
1073  PG_RETURN_NULL();
1074 
1075  /* Serialize and return */
1076  gser_result = gserialized_from_lwgeom(lwgeom_result, 0);
1077  lwgeom_free(lwgeom_result);
1078  PG_RETURN_POINTER(gser_result);
1079 }
unsigned int int32
Definition: shpopen.c:273
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1137
LWMPOINT * lwgeom_to_points(const LWGEOM *lwgeom, uint32_t npoints)
GSERIALIZED * gserialized_from_lwgeom(LWGEOM *geom, size_t *size)
Allocate a new GSERIALIZED from an LWGEOM.

Here is the call graph for this function: