* with basic metadata, followed by the boundary values. It has a varlena
* header, so can be treated as varlena directly.
*
- * See range_serialize/range_deserialize for serialization details.
+ * See brin_range_serialize/brin_range_deserialize for serialization details.
*/
typedef struct SerializedRanges
{
char data[FLEXIBLE_ARRAY_MEMBER];
} SerializedRanges;
-static SerializedRanges *range_serialize(Ranges *range);
+static SerializedRanges *brin_range_serialize(Ranges *range);
-static Ranges *range_deserialize(int maxvalues, SerializedRanges *range);
+static Ranges *brin_range_deserialize(int maxvalues, SerializedRanges *range);
/*
/*
- * range_serialize
+ * brin_range_serialize
* Serialize the in-memory representation into a compact varlena value.
*
* Simply copy the header and then also the individual values, as stored
* in the in-memory value array.
*/
static SerializedRanges *
-range_serialize(Ranges *range)
+brin_range_serialize(Ranges *range)
{
Size len;
int nvalues;
}
/*
- * range_deserialize
+ * brin_range_deserialize
* Serialize the in-memory representation into a compact varlena value.
*
* Simply copy the header and then also the individual values, as stored
* in the in-memory value array.
*/
static Ranges *
-range_deserialize(int maxvalues, SerializedRanges *serialized)
+brin_range_deserialize(int maxvalues, SerializedRanges *serialized)
{
int i,
nvalues;
/* At this point everything has to be fully sorted. */
Assert(ranges->nsorted == ranges->nvalues);
- s = range_serialize(ranges);
+ s = brin_range_serialize(ranges);
dst[0] = PointerGetDatum(s);
}
maxvalues = Max(maxvalues, MINMAX_BUFFER_MIN);
maxvalues = Min(maxvalues, MINMAX_BUFFER_MAX);
- ranges = range_deserialize(maxvalues, serialized);
+ ranges = brin_range_deserialize(maxvalues, serialized);
ranges->attno = attno;
ranges->colloid = colloid;
attno = column->bv_attno;
serialized = (SerializedRanges *) PG_DETOAST_DATUM(column->bv_values[0]);
- ranges = range_deserialize(serialized->maxvalues, serialized);
+ ranges = brin_range_deserialize(serialized->maxvalues, serialized);
/* inspect the ranges, and for each one evaluate the scan keys */
for (rangeno = 0; rangeno < ranges->nranges; rangeno++)
serialized_a = (SerializedRanges *) PG_DETOAST_DATUM(col_a->bv_values[0]);
serialized_b = (SerializedRanges *) PG_DETOAST_DATUM(col_b->bv_values[0]);
- ranges_a = range_deserialize(serialized_a->maxvalues, serialized_a);
- ranges_b = range_deserialize(serialized_b->maxvalues, serialized_b);
+ ranges_a = brin_range_deserialize(serialized_a->maxvalues, serialized_a);
+ ranges_b = brin_range_deserialize(serialized_b->maxvalues, serialized_b);
/* make sure neither of the ranges is NULL */
Assert(ranges_a && ranges_b);
/* cleanup and update the serialized value */
pfree(serialized_a);
- col_a->bv_values[0] = PointerGetDatum(range_serialize(ranges_a));
+ col_a->bv_values[0] = PointerGetDatum(brin_range_serialize(ranges_a));
PG_RETURN_VOID();
}
fmgr_info(outfunc, &fmgrinfo);
/* deserialize the range info easy-to-process pieces */
- ranges_deserialized = range_deserialize(ranges->maxvalues, ranges);
+ ranges_deserialized = brin_range_deserialize(ranges->maxvalues, ranges);
appendStringInfo(&str, "nranges: %d nvalues: %d maxvalues: %d",
ranges_deserialized->nranges,