From: | Richard Huxton <dev(at)archonet(dot)com> |
---|---|
To: | Don Y <pgsql(at)DakotaCom(dot)Net> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: PG_RETURN_? |
Date: | 2006-05-02 15:51:34 |
Message-ID: | 44578006.9030209@archonet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2006-05-02 16:12:14 | Re: PG_RETURN_? |
Previous Message | Don Y | 2006-05-02 15:43:03 | Re: PG_RETURN_? |