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 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general