PostGIS  3.1.6dev-r@@SVN_REVISION@@

◆ PGISDirectFunctionCall2()

Datum PGISDirectFunctionCall2 ( PGFunction  func,
Datum  arg1,
Datum  arg2 
)

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

Definition at line 382 of file lwgeom_accum.c.

383 {
384 #if POSTGIS_PGSQL_VERSION < 120
385  FunctionCallInfoData fcinfo;
386  Datum result;
387 
388  InitFunctionCallInfoData(fcinfo, NULL, 2, InvalidOid, NULL, NULL);
389 
390  fcinfo.arg[0] = arg1;
391  fcinfo.arg[1] = arg2;
392  fcinfo.argnull[0] = false;
393  fcinfo.argnull[1] = false;
394 
395  result = (*func) (&fcinfo);
396 
397  /* Check for null result, returning a "NULL" Datum if indicated */
398  if (fcinfo.isnull)
399  return (Datum) 0;
400 
401  return result;
402 #else
403  LOCAL_FCINFO(fcinfo, 2);
404  Datum result;
405 
406  InitFunctionCallInfoData(*fcinfo, NULL, 2, InvalidOid, NULL, NULL);
407 
408  fcinfo->args[0].value = arg1;
409  fcinfo->args[1].value = arg2;
410  fcinfo->args[0].isnull = false;
411  fcinfo->args[1].isnull = false;
412 
413  result = (*func)(fcinfo);
414 
415  /* Check for null result, returning a "NULL" Datum if indicated */
416  if (fcinfo->isnull)
417  return (Datum)0;
418 
419  return result;
420 #endif /* POSTGIS_PGSQL_VERSION < 120 */
421 }
char result[OUT_DOUBLE_BUFFER_SIZE]
Definition: cu_print.c:267

References result.

Referenced by pgis_geometry_clusterwithin_finalfn().

Here is the caller graph for this function: