Thread: Why there is a PG_GETARG_UINT32 and PG_RETURN_UINT32?
<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>
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.
<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>
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.