FNCAST: KEEPING FNCAST geometry(text) (see CAST)
FUNC: KEEPING FUNCTION: [line_interpolate_point(geometry, double precision)]
FUNC: KEEPING FUNCTION: [simplify(geometry, double precision)]
+FUNC: KEEPING FUNCTION: [segmentize(geometry, double precision)]
FUNC: KEEPING FUNCTION: [asbinary(geometry)]
FUNC: KEEPING FUNCTION: [asbinary(geometry, text)]
-FUNC: KEEPING FUNCTION: [boundary(geometry)]
-FUNC: KEEPING FUNCTION: [equals(geometry, geometry)]
-FUNC: KEEPING FUNCTION: [isempty(geometry)]
-FUNC: KEEPING FUNCTION: [segmentize(geometry, double precision)]
-FUNC: KEEPING FUNCTION: [unite_garray(geometry[])]
--- OBSOLETED ?
FUNC: KEEPING FUNCTION: [geometry_size(geometry, internal)]
FUNC: KEEPING FUNCTION: [optimistic_overlap(geometry, geometry, double precision)]
--- GEOS
+FUNC: KEEPING FUNCTION: [unite_garray(geometry[])]
FUNC: KEEPING FUNCTION: [centroid(geometry)] (Also !GEOS implementation)
AGGREGATE: KEEPING AGGREGATE [memgeomunion(geometry)]
AGGREGATE: KEEPING AGGREGATE [geomunion(geometry)]
FUNC: KEEPING FUNCTION: [geosnoop(geometry)]
FUNC: KEEPING FUNCTION: [intersection(geometry, geometry)]
FUNC: KEEPING FUNCTION: [intersects(geometry, geometry)]
+FUNC: KEEPING FUNCTION: [equals(geometry, geometry)]
+FUNC: KEEPING FUNCTION: [boundary(geometry)]
--- CHIP
FUNC: KEEPING FUNCTION: [chip_in(cstring)]
Datum LWGEOM_expand(PG_FUNCTION_ARGS);
Datum LWGEOM_to_BOX(PG_FUNCTION_ARGS);
Datum LWGEOM_envelope(PG_FUNCTION_ARGS);
+Datum LWGEOM_isempty(PG_FUNCTION_ARGS);
// internal
char * lwgeom_summary_recursive(char *serialized, int offset);
PG_RETURN_POINTER(result);
}
+
+PG_FUNCTION_INFO_V1(LWGEOM_isempty);
+Datum LWGEOM_isempty(PG_FUNCTION_ARGS)
+{
+ LWGEOM *geom = (LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+ if ( lwgeom_getnumgeometries(SERIALIZED_FORM(geom)) == 0 )
+ PG_RETURN_BOOL(TRUE);
+ PG_RETURN_BOOL(FALSE);
+}
char *lwgeom_input = (char *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
// SRID=#;<hexized wkb>
- char *hexized_wkb_srid =unparse_WKB(lwgeom_input,palloc_fn,free_fn);
+ char *hexized_wkb_srid = unparse_WKB(lwgeom_input,palloc_fn,free_fn);
char *hexized_wkb; // hexized_wkb_srid w/o srid
char *result; //wkb
AS '@MODULE_FILENAME@', 'LWGEOM_isclosed_linestring'
LANGUAGE 'C' WITH (isstrict);
+CREATEFUNCTION IsEmpty(geometry)
+ RETURNS boolean
+ AS '@MODULE_FILENAME@', 'LWGEOM_isempty'
+ LANGUAGE 'C' WITH (isstrict);
+
CREATEFUNCTION SRID(geometry)
RETURNS int4
AS '@MODULE_FILENAME@','LWGEOM_getSRID'