PostGIS  3.1.6dev-r@@SVN_REVISION@@

◆ PGISDirectFunctionCall1()

Datum PGISDirectFunctionCall1 ( PGFunction  func,
Datum  arg1 
)

A modified version of PostgreSQL's DirectFunctionCall1 which allows NULL results; this is required for aggregates that return NULL.

Definition at line 338 of file lwgeom_accum.c.

339 {
340 #if POSTGIS_PGSQL_VERSION < 120
341  FunctionCallInfoData fcinfo;
342  Datum result;
343 
344 
345  InitFunctionCallInfoData(fcinfo, NULL, 1, InvalidOid, NULL, NULL);
346 
347 
348  fcinfo.arg[0] = arg1;
349  fcinfo.argnull[0] = false;
350 
351  result = (*func) (&fcinfo);
352 
353  /* Check for null result, returning a "NULL" Datum if indicated */
354  if (fcinfo.isnull)
355  return (Datum) 0;
356 
357  return result;
358 #else
359  LOCAL_FCINFO(fcinfo, 1);
360  Datum result;
361 
362  InitFunctionCallInfoData(*fcinfo, NULL, 1, InvalidOid, NULL, NULL);
363 
364  fcinfo->args[0].value = arg1;
365  fcinfo->args[0].isnull = false;
366 
367  result = (*func)(fcinfo);
368 
369  /* Check for null result, returning a "NULL" Datum if indicated */
370  if (fcinfo->isnull)
371  return (Datum)0;
372 
373  return result;
374 #endif /* POSTGIS_PGSQL_VERSION < 120 */
375 }
char result[OUT_DOUBLE_BUFFER_SIZE]
Definition: cu_print.c:267

References result.

Referenced by pgis_geometry_clusterintersecting_finalfn(), pgis_geometry_collect_finalfn(), pgis_geometry_makeline_finalfn(), and pgis_geometry_polygonize_finalfn().

Here is the caller graph for this function: