for (i = 0; i < nvalues; i++)
{
/* don't forget to include the null terminator ;-) */
- len += strlen(DatumGetPointer(range->values[i])) + 1;
+ len += strlen(DatumGetCString(range->values[i])) + 1;
}
}
else /* fixed-length types (even by-reference) */
}
else if (typlen == -2) /* cstring */
{
- int tmp = strlen(DatumGetPointer(range->values[i])) + 1;
+ int tmp = strlen(DatumGetCString(range->values[i])) + 1;
- memcpy(ptr, DatumGetPointer(range->values[i]), tmp);
+ memcpy(ptr, DatumGetCString(range->values[i]), tmp);
ptr += tmp;
}
}
else if (typlen == -2) /* cstring */
{
- datalen += MAXALIGN(strlen(DatumGetPointer(ptr)) + 1);
- ptr += strlen(DatumGetPointer(ptr)) + 1;
+ Size slen = strlen(DatumGetCString(ptr)) + 1;
+
+ datalen += MAXALIGN(slen);
+ ptr += slen;
}
}
memcpy(dataptr, ptr, slen);
dataptr += MAXALIGN(slen);
- ptr += (slen);
+ ptr += slen;
}
/* make sure we haven't overflown the buffer end */
idx = 0;
for (i = 0; i < ranges_deserialized->nranges; i++)
{
- Datum a,
- b;
+ char *a,
+ *b;
text *c;
StringInfoData str;
initStringInfo(&str);
- a = FunctionCall1(&fmgrinfo, ranges_deserialized->values[idx++]);
- b = FunctionCall1(&fmgrinfo, ranges_deserialized->values[idx++]);
+ a = OutputFunctionCall(&fmgrinfo, ranges_deserialized->values[idx++]);
+ b = OutputFunctionCall(&fmgrinfo, ranges_deserialized->values[idx++]);
- appendStringInfo(&str, "%s ... %s",
- DatumGetPointer(a),
- DatumGetPointer(b));
+ appendStringInfo(&str, "%s ... %s", a, b);
c = cstring_to_text(str.data);
a = FunctionCall1(&fmgrinfo, ranges_deserialized->values[idx++]);
- appendStringInfoString(&str, DatumGetPointer(a));
+ appendStringInfoString(&str, DatumGetCString(a));
b = cstring_to_text(str.data);