Обсуждение: unsigned and signed chars in libpq API
Hey all,<br /><br />Could you tell me please an objective reason why PQunescapeBytea()<br />returns unsigned char* ratherthan just char* ?<br />I am asking because a bit confused. How this intermixes with LO's API,<br />which based on signedchars (although as we all know large object -<br /> is a just bytea splitted on chunks)?<br />And also PQgetvalue()returns char* rather than unsigned char*.<br /><br />Thanks.<br clear="all" /><br />-- <br />// Dmitriy.<br /><br/><br />
On Thu, Feb 2, 2012 at 10:33:24AM +0300, Dmitriy Igrishin wrote: > Hey all, > > Could you tell me please an objective reason why PQunescapeBytea() > returns unsigned char* rather than just char* ? > I am asking because a bit confused. How this intermixes with LO's API, > which based on signed chars (although as we all know large object - > is a just bytea splitted on chunks)? > And also PQgetvalue() returns char* rather than unsigned char*. Can someone answer this? Are we consistent here? -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
Bruce Momjian <bruce@momjian.us> writes: > On Thu, Feb 2, 2012 at 10:33:24AM +0300, Dmitriy Igrishin wrote: >> Could you tell me please an objective reason why PQunescapeBytea() >> returns unsigned char* rather than just char* ? >> I am asking because a bit confused. How this intermixes with LO's API, >> which based on signed chars (although as we all know large object - >> is a just bytea splitted on chunks)? >> And also PQgetvalue() returns char* rather than unsigned char*. > Can someone answer this? Are we consistent here? We're not, particularly, but changing any of this seems likely to create more pain than it removes. regards, tom lane
On Mon, Aug 27, 2012 at 12:40:37PM -0400, Tom Lane wrote: > Bruce Momjian <bruce@momjian.us> writes: > > On Thu, Feb 2, 2012 at 10:33:24AM +0300, Dmitriy Igrishin wrote: > >> Could you tell me please an objective reason why PQunescapeBytea() > >> returns unsigned char* rather than just char* ? > >> I am asking because a bit confused. How this intermixes with LO's API, > >> which based on signed chars (although as we all know large object - > >> is a just bytea splitted on chunks)? > >> And also PQgetvalue() returns char* rather than unsigned char*. > > > Can someone answer this? Are we consistent here? > > We're not, particularly, but changing any of this seems likely to > create more pain than it removes. OK, thanks. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +