2017-09-23 4:52 GMT+02:00 Paul A Jungwirth <pj@xxxxxxxxxxxxxxxxxxxxxxxx>:
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)?:
yes, it is 8 bytes on 64-bit.
I don't think so it is good idea to write 64bit only extensions.
float8 *floats;
Datum *datums;
datums = palloc(arrlen * sizeof(Datum));
for (i = 0; i < arrlen; i++) {
datums[i] = Float8GetDatum(floats[i]);
}
Thanks!
Paul
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general