PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ gidx_equals()

bool gidx_equals ( GIDX *  a,
GIDX *  b 
)

Definition at line 467 of file gserialized_gist_nd.c.

468 {
469  uint32_t i, dims_a, dims_b;
470 
471  if (!a && !b)
472  return true;
473  if (!a || !b)
474  return false;
475 
476  if (gidx_is_unknown(a) && gidx_is_unknown(b))
477  return true;
478 
479  if (gidx_is_unknown(a) || gidx_is_unknown(b))
480  return false;
481 
482  dims_a = GIDX_NDIMS(a);
483  dims_b = GIDX_NDIMS(b);
484 
485  /* For all shared dimensions min(a) == min(b), max(a) == max(b)
486  Unshared dimensions do not matter */
487  for (i = 0; i < Min(dims_a, dims_b); i++)
488  {
489  /* If the missing dimension was not padded with -+FLT_MAX */
490  if (GIDX_GET_MAX(a, i) != FLT_MAX && GIDX_GET_MAX(b, i) != FLT_MAX)
491  {
492  if (GIDX_GET_MIN(a, i) != GIDX_GET_MIN(b, i))
493  return false;
494  if (GIDX_GET_MAX(a, i) != GIDX_GET_MAX(b, i))
495  return false;
496  }
497  }
498  return true;
499 }
bool gidx_is_unknown(const GIDX *a)

References gidx_is_unknown().

Referenced by gserialized_gidx_geom_same(), gserialized_gidx_gidx_same(), gserialized_gist_consistent_leaf(), gserialized_gist_picksplit(), gserialized_gist_same(), gserialized_same(), and gserialized_spgist_leaf_consistent_nd().

Here is the call graph for this function:
Here is the caller graph for this function: