PostGIS  2.3.8dev-r@@SVN_REVISION@@

◆ gserialized_datum_predicate()

static int gserialized_datum_predicate ( Datum  gs1,
Datum  gs2,
gidx_predicate  predicate 
)
static

Support function.

Based on two datums return true if they satisfy the predicate and false otherwise.

Definition at line 472 of file gserialized_gist_nd.c.

References LW_FALSE, LW_SUCCESS, and LW_TRUE.

Referenced by gserialized_contains(), gserialized_overlaps(), and gserialized_within().

473 {
474  /* Put aside some stack memory and use it for GIDX pointers. */
475  char boxmem1[GIDX_MAX_SIZE];
476  char boxmem2[GIDX_MAX_SIZE];
477  GIDX *gidx1 = (GIDX*)boxmem1;
478  GIDX *gidx2 = (GIDX*)boxmem2;
479 
480  POSTGIS_DEBUG(3, "entered function");
481 
482  /* Must be able to build box for each arguement (ie, not empty geometry)
483  and predicate function to return true. */
484  if ( (gserialized_datum_get_gidx_p(gs1, gidx1) == LW_SUCCESS) &&
485  (gserialized_datum_get_gidx_p(gs2, gidx2) == LW_SUCCESS) &&
486  predicate(gidx1, gidx2) )
487  {
488  POSTGIS_DEBUGF(3, "got boxes %s and %s", gidx_to_string(gidx1), gidx_to_string(gidx2));
489  return LW_TRUE;
490  }
491  return LW_FALSE;
492 }
#define LW_SUCCESS
Definition: liblwgeom.h:79
#define LW_FALSE
Definition: liblwgeom.h:76
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:75
Here is the caller graph for this function: