From: Ken Causey <ken@premiernet.net>
To: pgsql-interfaces@postgresql.org
Subject: Problem with Large Object Interface of pgsql_perl5
Date: Fri, 31 Mar 2000 10:18:55 -0600
Message-ID: <3.0.1.32.20000331101855.016db34c@premiernet.net> (raw)
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.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: ken@premiernet.net
Subject: Re: Problem with Large Object Interface of pgsql_perl5
In-Reply-To: <3.0.1.32.20000331101855.016db34c@premiernet.net>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox