598{
599 char gidxmem[GIDX_MAX_SIZE];
600 GIDX *result = (GIDX *)gidxmem;
601 long unsigned int i;
602
603 POSTGIS_DEBUG(4, "[SPGIST] 'compress' function called");
604
605
606 if (PG_ARGISNULL(0))
607 {
608 POSTGIS_DEBUG(4, "[SPGIST] null entry (!?!)");
609 PG_RETURN_NULL();
610 }
611
612
613
614 if (gserialized_datum_get_gidx_p(PG_GETARG_DATUM(0), result) ==
LW_FAILURE)
615 {
616 POSTGIS_DEBUG(4, "[SPGIST] empty geometry!");
617 PG_RETURN_NULL();
618 }
619
620 POSTGIS_DEBUGF(4, "[SPGIST] got GIDX: %s", gidx_to_string(result));
621
622
623
624 for (i = 0; i < GIDX_NDIMS(result); i++)
625 {
626 if (!isfinite(GIDX_GET_MAX(result, i)) || !isfinite(GIDX_GET_MIN(result, i)))
627 {
629 PG_RETURN_POINTER(result);
630 }
631 }
632
633
635
636
638}
void gidx_set_unknown(GIDX *a)
GIDX * gidx_copy(GIDX *b)
void gidx_validate(GIDX *b)