lobj bug

Started by Cobover 26 years ago1 messagesbugs
Jump to latest
#1Cob
cob@gnt.kiev.ua

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Alexey Kobozev
Your email address : cob@gnt.kiev.ua

System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel Pentium

Operating System (example: Linux 2.0.26 ELF) : FreeBSD 2.2.1 & Solaris 2.6

PostgreSQL version (example: PostgreSQL-6.5.2): PostgreSQL-6.5 & 6.5.2

Compiler used (example: gcc 2.8.0) : gcc version 2.7.2.1 & 2.8.1

Please enter a FULL description of your problem:
------------------------------------------------
Bug in libpq (IMHO).

When I've got large object id (oid) from table any attempt to
open it with lo_open (lo_export) returns -1 (perrno = 2 - not found).

But using of built-in lo_import/lo_export
(insert into xxx values(lo_import('file')) or select lo_export(lobj_id))
successful.

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

create table tmp (lobj oid);

insert into tmp values(lo_import('some_file'));

select lobj from tmp;
lobj
------
xxxxxx

//------------- problem.c ----------------

#include <stdio.h>
#include "libpq-fe.h"
#include "libpq/libpq-fs.h"

void main()
{
PGconn *dbConn = PQsetdb(NULL, NULL, NULL, NULL, "database");
if(PQstatus(dbConn) == CONNECTION_BAD)
{
fprintf(stderr, "%s\n", PQerrorMessage(dbConn));
exit(1);
}

if(lo_export(dbConn, xxxxxx, "/tmp/lobj") < 0)
fprintf(stderr, "Can't export lobj\n"); //we'll get here

if(lo_open(dbConn, xxxxxx, INV_READ) < 0)
fprintf(stderr, "Can't even open lobj\n"); //we'll get here

PQfinish(dbConn);
}

//--------------------------------------------

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------