The docs say that a Datum can be 4 bytes or 8 depending on the machine:
https://www.postgresql.org/docs/9.5/static/sql-createtype.html
Is a Datum always 8 bytes for 64-bit architectures?
And if so, can my C extension skip a loop like this when compiling
there, and just do a memcpy (or even a cast)?:
float8 *floats;
Datum *datums;
datums = palloc(arrlen * sizeof(Datum));
for (i = 0; i < arrlen; i++) {
datums[i] = Float8GetDatum(floats[i]);
}
Thanks!
Paul