Re: OID from insert has extra letter
От | Tom Lane |
---|---|
Тема | Re: OID from insert has extra letter |
Дата | |
Msg-id | 22707.981425865@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | OID from insert has extra letter (darcy@druid.net (D'Arcy J.M. Cain)) |
Ответы |
Re: OID from insert has extra letter
|
Список | pgsql-hackers |
darcy@druid.net (D'Arcy J.M. Cain) writes: > Get: 31930584, should be 3193058 > Get: 31943386, should be 3194338 > As you can see, there is an extra digit added. I am using PQoidStatus() > to get the OID. Is this the right way? Is it possible that there is > a buffer/terminating problem in the insert code? Yes, on looking at it I see that someone broke PQoidStatus() in 7.0. If you want to fix your copy, the patch (line numbers are for current CVS) is Index: fe-exec.c =================================================================== RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v retrieving revision 1.98 retrieving revision 1.100 diff -c -r1.98 -r1.100 *** fe-exec.c 2001/01/24 19:43:30 1.98 --- fe-exec.c 2001/02/06 02:02:27 1.100 *************** *** 2035,2041 **** if (len > 23) len = 23; strncpy(buf, res->cmdStatus + 7, len); ! buf[23] = '\0'; return buf; } --- 2035,2041 ---- if (len > 23) len = 23; strncpy(buf, res->cmdStatus + 7, len); ! buf[len] = '\0'; return buf; } However, really I'd recommend using PQoidValue() and not PQoidStatus() at all. regards, tom lane
В списке pgsql-hackers по дате отправления: