"Greg Sabino Mullane" <[EMAIL PROTECTED]> writes: > I'm having some problems with lo_open inside of DBD::Pg (which > uses libpq) and need help in debugging the problem.
lo_open doesn't work unless inside a transaction block (and even if it did work, the result would be useless to you). I believe the reason for the -1 result is this code inside libpq's lo_open: /* have to do this to reset offset in shared fd cache */ /* but only if fd is valid */ if (fd >= 0 && lo_lseek(conn, fd, 0L, SEEK_SET) < 0) return -1; Since you forgot to start a transaction block, the results of the backend lo_open call are already dead and the lo_lseek fails with ERROR: invalid large-object descriptor: 0 This looks rather considerably like a hack to compensate for a very long-gone bug ... can anyone see a reason not to take it out? Of course taking it out wouldn't improve Greg's results much, since he'd still get a failure at the next LO operation, but this sure looks like it's incurring a useless network round trip... regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly