1082{
1083 Datum datum_line, datum_point;
1085 LWGEOM *lwgeom_line, *lwgeom_point;
1090 int rv;
1091
1092 POSTGIS_DEBUG(2, "ST_Scroll called.");
1093
1094 datum_line = PG_GETARG_DATUM(0);
1095 datum_point = PG_GETARG_DATUM(1);
1096
1097 ser_line = ((
GSERIALIZED *)PG_DETOAST_DATUM(datum_line));
1100 if ( ! line ) {
1101 lwpgerror("First argument must be a line");
1102 PG_RETURN_NULL();
1103 }
1104
1105 ser_point = ((
GSERIALIZED *)PG_DETOAST_DATUM(datum_point));
1108 if ( ! point ) {
1109 lwpgerror("Second argument must be a point");
1110 PG_RETURN_NULL();
1111 }
1113 lwpgerror("Second argument must be a non-empty point");
1114 PG_RETURN_NULL();
1115 }
1116
1119 PG_RETURN_NULL();
1120 }
1121
1122 ser_out = geometry_serialize(lwgeom_line);
1123
1125 PG_FREE_IF_COPY(ser_line, 0);
1126 PG_FREE_IF_COPY(ser_point, 0);
1127
1128 PG_RETURN_POINTER(ser_out);
1129}
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
int lwpoint_getPoint4d_p(const LWPOINT *point, POINT4D *out)
void lwgeom_free(LWGEOM *geom)
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
int ptarray_scroll_in_place(POINTARRAY *pa, const POINT4D *newbase)
static LWPOINT * lwgeom_as_lwpoint(const LWGEOM *lwgeom)