PostGIS  3.3.9dev-r@@SVN_REVISION@@

◆ LWGEOM_summary()

Datum LWGEOM_summary ( PG_FUNCTION_ARGS  )

Definition at line 141 of file lwgeom_functions_basic.c.

142 {
143  text *summary;
144  GSERIALIZED *g = PG_GETARG_GSERIALIZED_P(0);
146  char *lwresult = lwgeom_summary(lwg, 0);
147  uint32_t gver = gserialized_get_version(g);
148  size_t result_sz = strlen(lwresult) + 8;
149  char *result;
150  if (gver == 0)
151  {
152  result = lwalloc(result_sz + 2);
153  snprintf(result, result_sz, "0:%s", lwresult);
154  }
155  else
156  {
157  result = lwalloc(result_sz);
158  snprintf(result, result_sz, "%s", lwresult);
159  }
160  lwgeom_free(lwg);
161  lwfree(lwresult);
162 
163  /* create a text obj to return */
164  summary = cstring_to_text(result);
165  lwfree(result);
166 
167  PG_FREE_IF_COPY(g, 0);
168  PG_RETURN_TEXT_P(summary);
169 }
char result[OUT_DOUBLE_BUFFER_SIZE]
Definition: cu_print.c:267
uint32_t gserialized_get_version(const GSERIALIZED *g)
Return the serialization version.
Definition: gserialized.c:42
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
Definition: gserialized.c:239
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1155
char * lwgeom_summary(const LWGEOM *lwgeom, int offset)
Definition: lwgeom_debug.c:166
void lwfree(void *mem)
Definition: lwutil.c:242
void * lwalloc(size_t size)
Definition: lwutil.c:227

References gserialized_get_version(), lwalloc(), lwfree(), lwgeom_free(), lwgeom_from_gserialized(), lwgeom_summary(), and result.

Here is the call graph for this function: