Re: [GENERAL] Is float8 a reference type?

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: [GENERAL] Is float8 a reference type?
Дата
Msg-id CAFj8pRAvVMPcH6Bc30fCq-Vi6+foUBm=XQ8U8v8osaZ=zzV14g@mail.gmail.com
обсуждение исходный текст
Ответ на [GENERAL] Is float8 a reference type?  (Paul A Jungwirth <pj@illuminatedcomputing.com>)
Ответы Re: [GENERAL] Is float8 a reference type?  (Paul A Jungwirth <pj@illuminatedcomputing.com>)
Список 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 по дате отправления:

Предыдущее
От: Paul A Jungwirth
Дата:
Сообщение: [GENERAL] Is float8 a reference type?
Следующее
От: Paul A Jungwirth
Дата:
Сообщение: Re: [GENERAL] Is float8 a reference type?