Re: [GENERAL] Is float8 a reference type? - Mailing list pgsql-general

From Pavel Stehule
Subject Re: [GENERAL] Is float8 a reference type?
Date
Msg-id CAFj8pRAvVMPcH6Bc30fCq-Vi6+foUBm=XQ8U8v8osaZ=zzV14g@mail.gmail.com
Whole thread Raw
In response to [GENERAL] Is float8 a reference type?  (Paul A Jungwirth <pj@illuminatedcomputing.com>)
Responses Re: [GENERAL] Is float8 a reference type?  (Paul A Jungwirth <pj@illuminatedcomputing.com>)
List pgsql-general


2017-09-23 4:52 GMT+02:00 Paul A Jungwirth <pj@illuminatedcomputing.com>:
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@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

pgsql-general by date:

Previous
From: Paul A Jungwirth
Date:
Subject: [GENERAL] Is float8 a reference type?
Next
From: Paul A Jungwirth
Date:
Subject: Re: [GENERAL] Is float8 a reference type?