PostGIS  3.0.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 329 of file lwgeom_accum.c.

330 {
331 #if POSTGIS_PGSQL_VERSION < 120
332  FunctionCallInfoData fcinfo;
333  Datum result;
334 
335 
336  InitFunctionCallInfoData(fcinfo, NULL, 1, InvalidOid, NULL, NULL);
337 
338 
339  fcinfo.arg[0] = arg1;
340  fcinfo.argnull[0] = false;
341 
342  result = (*func) (&fcinfo);
343 
344  /* Check for null result, returning a "NULL" Datum if indicated */
345  if (fcinfo.isnull)
346  return (Datum) 0;
347 
348  return result;
349 #else
350  LOCAL_FCINFO(fcinfo, 1);
351  Datum result;
352 
353  InitFunctionCallInfoData(*fcinfo, NULL, 1, InvalidOid, NULL, NULL);
354 
355  fcinfo->args[0].value = arg1;
356  fcinfo->args[0].isnull = false;
357 
358  result = (*func)(fcinfo);
359 
360  /* Check for null result, returning a "NULL" Datum if indicated */
361  if (fcinfo->isnull)
362  return (Datum)0;
363 
364  return result;
365 #endif /* POSTGIS_PGSQL_VERSION < 120 */
366 }

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: