Re: PG_RETURN_?

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: PG_RETURN_?
Дата
Msg-id 44578006.9030209@archonet.com
обсуждение исходный текст
Ответ на Re: PG_RETURN_?  (Don Y <pgsql@DakotaCom.Net>)
Список pgsql-general
Don Y wrote:
> Richard Huxton wrote:
>> Don Y wrote:
>>> Hi,
>>>
>>> I have a set of functions for a data type that return
>>> small integers (i.e. [0..12]).  I can, of course, represent
>>> it as a char, short or long (CHAR, INT16 or INT32).
>>> re there any advantages/drawbacks to chosing one particular
>>> PG_RETURN_ type over another (realizing that they are
>>> effectively just casts)?
>>
>> If they are integers then an int would be the obvious choice. If you
>> are going to treat them as int2 outside the function then int2,
>> otherwise just integer.
>
> Yes, I was more interested in what might be going on "behind the
> scenes" inside the server that could bias my choice of WHICH
> integer type to use.  E.g., if arguments are marshalled as
> byte arrays vs. as Datum arrays, etc.  (I would suspect the
> latter).  Since I could use something as small as a char to
> represent the values, the choice is more interested in how
> OTHER things would be affected...

I must admit I've never tested, but I strongly suspect any differences
will be below the level you can accurately measure. Certainly from the
point of view of 8/16/32 bit integers I'd guess they'd all time the same
(they should all end up as a Datum). With a 64-bit CPU I'd guess that
would extend to 64 bits too. Hmm - looking at comments it seems int64 is
  a reference type regardless of CPU (include/postgres.h)

>  > Oh, it's int2/int4 not int16/int32.
>
> The *data type* is int2/int4 but the PG_RETURN_? macro is
> PG_RETURN_INT16 or PG_RETURN_INT32 -- hence the reason
> I referred to them as "CHAR, INT16 or INT32" instead of
> "char, int2 or int4"  :>

You're quite right. I was thinking from the other side.

--
   Richard Huxton
   Archonet Ltd

В списке pgsql-general по дате отправления:

Предыдущее
От: Don Y
Дата:
Сообщение: Re: PG_RETURN_?
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: PG_RETURN_?