PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ 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 506 of file gserialized_gist_nd.c.

507{
508 /* Put aside some stack memory and use it for GIDX pointers. */
509 char boxmem1[GIDX_MAX_SIZE];
510 char boxmem2[GIDX_MAX_SIZE];
511 GIDX *gidx1 = (GIDX *)boxmem1;
512 GIDX *gidx2 = (GIDX *)boxmem2;
513
514 POSTGIS_DEBUG(3, "entered function");
515
516 /* Must be able to build box for each argument (ie, not empty geometry)
517 and predicate function to return true. */
518 if ((gserialized_datum_get_gidx_p(gs1, gidx1) == LW_SUCCESS) &&
519 (gserialized_datum_get_gidx_p(gs2, gidx2) == LW_SUCCESS) && predicate(gidx1, gidx2))
520 {
521 POSTGIS_DEBUGF(3, "got boxes %s and %s", gidx_to_string(gidx1), gidx_to_string(gidx2));
522 return LW_TRUE;
523 }
524 return LW_FALSE;
525}
#define LW_FALSE
Definition liblwgeom.h:94
#define LW_SUCCESS
Definition liblwgeom.h:97
#define LW_TRUE
Return types for functions with status returns.
Definition liblwgeom.h:93

References LW_FALSE, LW_SUCCESS, and LW_TRUE.

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

Here is the caller graph for this function: