Re: 64-bit API for large object - Mailing list pgsql-hackers

From Kohei KaiGai
Subject Re: 64-bit API for large object
Date
Msg-id CADyhKSWs_-cZUnvdaTZGtQ0=bOdOF3wkcBw9VgUUeC9Gy46T9Q@mail.gmail.com
Whole thread Raw
In response to Re: 64-bit API for large object  (Tatsuo Ishii <ishii@postgresql.org>)
Responses Re: 64-bit API for large object  (Tatsuo Ishii <ishii@postgresql.org>)
List pgsql-hackers
2012/9/21 Tatsuo Ishii <ishii@postgresql.org>:
>>> I think Tom's point is, there are tons of applications which define
>>> their own "int64_t" (at least in 2005).
>>> Also pg_config.h has:
>>>
>>> #define HAVE_STDINT_H   1
>>>
>>> and this suggests that PostgreSQL adopts to platforms which does not
>>> have stdint.h. If so, we need to take care of such platforms anyway.
>>>
>> OK, it makes me clear. It might be helpful a source code comment
>> to remain why we used self defined datatype here.
>
> Ok.
>
>> 2012/9/21 Tom Lane <tgl@sss.pgh.pa.us>:
>>> Tatsuo Ishii <ishii@postgresql.org> writes:
>>>> To pass 64-bit integer to PQfn, PQArgBlock is used like this: int *ptr
>>>> is a pointer to 64-bit integer and actual data is placed somewhere
>>>> else.
>>>
>>> Yeah, I think we have to do it like that.  Changing the size of
>>> PQArgBlock would be a libpq ABI break, which IMO is sufficiently painful
>>> to kill this whole proposal.  Much better a little localized ugliness
>>> in fe-lobj.c.
>>>
>> Hmm, I see. Please deliver the 64bit integer argument as reference,
>> and don't forget endian translations here.
>
> I thought pgPutInt64() takes care of endianness. No?
>
It works inside of the PGfn(), when isint = 1 towards pointer data type.
In my sense, it is a bit problem specific solution.

So, I'd like to see other person's opinion here.

Thanks,
-- 
KaiGai Kohei <kaigai@kaigai.gr.jp>



pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: 64-bit API for large object
Next
From: Amit Kapila
Date:
Subject: Re: ToDo: allow to get a number of processed rows by COPY statement [Review of Patch]