PostGIS  2.3.8dev-r@@SVN_REVISION@@

◆ gserialized_gist_union_2d()

Datum gserialized_gist_union_2d ( PG_FUNCTION_ARGS  )

Definition at line 1286 of file gserialized_gist_2d.c.

References box2df_copy(), box2df_merge(), box2df_to_string(), gserialized_gist_same_2d(), and PG_FUNCTION_INFO_V1().

Referenced by gserialized_gist_penalty_2d().

1287 {
1288  GistEntryVector *entryvec = (GistEntryVector *) PG_GETARG_POINTER(0);
1289  int *sizep = (int *) PG_GETARG_POINTER(1); /* Size of the return value */
1290  int numranges, i;
1291  BOX2DF *box_cur, *box_union;
1292 
1293  POSTGIS_DEBUG(4, "[GIST] 'union' function called");
1294 
1295  numranges = entryvec->n;
1296 
1297  box_cur = (BOX2DF*) DatumGetPointer(entryvec->vector[0].key);
1298 
1299  box_union = box2df_copy(box_cur);
1300 
1301  for ( i = 1; i < numranges; i++ )
1302  {
1303  box_cur = (BOX2DF*) DatumGetPointer(entryvec->vector[i].key);
1304  box2df_merge(box_union, box_cur);
1305  }
1306 
1307  *sizep = sizeof(BOX2DF);
1308 
1309  POSTGIS_DEBUGF(4, "[GIST] 'union', numranges(%i), pageunion %s", numranges, box2df_to_string(box_union));
1310 
1311  PG_RETURN_POINTER(box_union);
1312 
1313 }
static BOX2DF * box2df_copy(BOX2DF *b)
static char * box2df_to_string(const BOX2DF *a)
static void box2df_merge(BOX2DF *b_union, BOX2DF *b_new)
Here is the call graph for this function:
Here is the caller graph for this function: