Received: from mail.premiernet.net (root@mail.premiernet.net [205.229.224.233]) by hub.org (8.9.3/8.9.3) with ESMTP id LAA19729 for ; Fri, 31 Mar 2000 11:18:34 -0500 (EST) (envelope-from ken@premiernet.net) Received: from win (win.ineffable.com [205.229.224.253]) by mail.premiernet.net (8.9.3/8.9.3) with SMTP id KAA05505 for ; Fri, 31 Mar 2000 10:18:33 -0600 Message-Id: <3.0.1.32.20000331101855.016db34c@premiernet.net> X-Sender: ken@premiernet.net (Unverified) X-Mailer: Windows Eudora Pro Version 3.0.1 (32) Date: Fri, 31 Mar 2000 10:18:55 -0600 To: pgsql-interfaces@postgresql.org From: Ken Causey Subject: Problem with Large Object Interface of pgsql_perl5 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Archive-Number: 200003/9 I'm using PostgreSQL 6.5.3, Perl 5.005_03, and pgsql_perl5 1.8.0 on Linux (intel). Running this program: #!/usr/bin/perl use strict; package Main; use Pg; my $db_name='excised'; my $db_user='excised'; my $db_passwd='excised'; # Connect to the database server my $dbconn = Pg::connectdb("dbname=$db_name user=$db_user password=$db_passwd"); if($dbconn->status ne PGRES_CONNECTION_OK){ # We failed to get a connection, exit with error my $error=$dbconn->errorMessage; print "Error on connection: $error\n"; exit; } print "Database connection opened\n"; my $newoid = $dbconn->lo_creat(PGRES_INV_WRITE|PGRES_INV_READ); if($newoid == PGRES_InvalidOid){ my $error = $dbconn->errorMessage; print "Error on lo_creat: $error\n"; exit; } print "LO created\n"; my $fd = $dbconn->lo_open($newoid,PGRES_INV_WRITE); if($fd == -1){ # Error on opening new oid my $error = $dbconn->errorMessage; print "Error on lo_open (oid = $newoid): $error\n"; # Try to unlink the oid $dbconn->lo_unlink($newoid); exit; } print "LO opened\n"; my $content = 'This is a test of the emergency broadcasting system, in the event of a real emergency...'; my $numbytes=$dbconn->lo_write($fd,$content,length($content)); if($numbytes != length($content)){ my $rightnum=length($content); my $error = $dbconn->errorMessage; print "Error on lo_write ($numbytes != $rightnum): $error\n"; # Try to unlink the oid $dbconn->lo_close($fd); $dbconn->lo_unlink($newoid); exit; } print "LO written\n"; $dbconn->lo_close($fd); $dbconn->lo_unlink($newoid); I get this output: Database connection opened LO created Error on lo_open (oid = 46401): ERROR: lo_lseek: invalid large obj descriptor (0) Can anyone tell me what I'm doing wrong? All help is greatly appreciated. Ken Causey PremierNET, Inc.