Обсуждение: Why there is a PG_GETARG_UINT32 and PG_RETURN_UINT32?

Поиск
Список
Период
Сортировка

Why there is a PG_GETARG_UINT32 and PG_RETURN_UINT32?

От
Rodrigo Barboza
Дата:
<div dir="ltr">Hi guys.<div style="style">I am wondering when I can use the PG_GETARG_UINT32 and
PG_RETURN_UINT32.</div><divstyle="style">If postgres has no unsigned int type, what is the use of these
macros?</div></div>

Re: Why there is a PG_GETARG_UINT32 and PG_RETURN_UINT32?

От
Amit Kapila
Дата:
On Thursday, April 04, 2013 8:30 PM Rodrigo Barboza wrote:

> Hi guys.
> I am wondering when I can use the PG_GETARG_UINT32 and PG_RETURN_UINT32.
> If postgres has no unsigned int type, what is the use of these macros?

They are mainly used for contrib module functionality or some built-in
functions which are not exposed.
For example, bt_page_items() receives relation name (text) and block number
(int), but internally the block number
is unit32 as max blocks can be oxFFFFFFFE.

With Regards,
Amit Kapila.




Re: Why there is a PG_GETARG_UINT32 and PG_RETURN_UINT32?

От
Rodrigo Barboza
Дата:
<div dir="ltr">I am creating my own uint32 type and faced this function.<div style="style">But my args are always of
typemy_int and one of the signed int types as postgres doesn't hava unsigned.</div><div style="style">Could I use those
functionsin operations between those types?</div><div style="style">I can't see a place for this, I don't know if I am
missingsomething....</div></div><div class="gmail_extra"><br /><br /><div class="gmail_quote">On Fri, Apr 5, 2013 at
1:12AM, Amit Kapila <span dir="ltr"><<a href="mailto:amit.kapila@huawei.com"
target="_blank">amit.kapila@huawei.com</a>></span>wrote:<br /><blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px#ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Thursday, April 04, 2013 8:30
PMRodrigo Barboza wrote:<br /><br /> > Hi guys.<br /> > I am wondering when I can use the PG_GETARG_UINT32 and
PG_RETURN_UINT32.<br/> > If postgres has no unsigned int type, what is the use of these macros?<br /><br
/></div></div>Theyare mainly used for contrib module functionality or some built-in<br /> functions which are not
exposed.<br/> For example, bt_page_items() receives relation name (text) and block number<br /> (int), but internally
theblock number<br /> is unit32 as max blocks can be oxFFFFFFFE.<br /><br /> With Regards,<br /> Amit Kapila.<br /><br
/></blockquote></div><br/></div> 

Re: Why there is a PG_GETARG_UINT32 and PG_RETURN_UINT32?

От
Amit Kapila
Дата:
On Friday, April 05, 2013 10:00 AM Rodrigo Barboza wrote:

> I am creating my own uint32 type and faced this function.
> But my args are always of type my_int and one of the signed int types as
postgres doesn't hava unsigned.
> Could I use those functions in operations between those types?

It should not be a problem if your signed type doesn't have any negative
value.


> I can't see a place for this, I don't know if I am missing something....

>On Fri, Apr 5, 2013 at 1:12 AM, Amit Kapila <amit.kapila@huawei.com> wrote:
>>On Thursday, April 04, 2013 8:30 PM Rodrigo Barboza wrote:

>> Hi guys.
>> I am wondering when I can use the PG_GETARG_UINT32 and PG_RETURN_UINT32.
>> If postgres has no unsigned int type, what is the use of these macros?
> They are mainly used for contrib module functionality or some built-in
> functions which are not exposed.
> For example, bt_page_items() receives relation name (text) and block
number
> (int), but internally the block number
> is unit32 as max blocks can be oxFFFFFFFE.

With Regards,
Amit Kapila.