Skip site navigation (1) Skip section navigation (2)

large object error

From: "Peter Garner" <peter(dot)garner(at)toward(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Cc: peter(dot)garner(at)toward(dot)com
Subject: large object error
Date: 1998-10-26 01:00:32
Message-ID: 199810260100.AA107415366@piglet.toward.com (view raw or flat)
Thread:
Lists: pgsql-interfaces
Hi All!  :-)

Thanks for your help! :-)  I am attempting to write an app
that uses large objects.  It is an offline Usenet NNTP news
reader that stores all of the message information in a
postgres database.  I am using the LOBS to hold the
message body.  Thus one of the tables is declared as

create table Msg_Bodies
(
  Msg_Id                text      not null  ,
  Msg_Body              OID       not null  ,

  primary key ( Msg_Id )

) ;


I am getting a wierd error attempting to access the lobs.
When I close the lob, I get the error 

PQfn: expected a 'V' from the backend. Got 'N' instead

>From this point on, all further attempts to access LOBs
generate this error. 

The lobs are already created, and were stored in the table
without error.  This error occurs later when I try to read
the lob.  I have written some simple function wrappers to
the postgres lob functions that do some logging and the
sequence of events is :

Entering int lobOpen ( Oid oid , int nMode )
Oid is 145147 mode is 262144
In lobOpen ( Oid oid , int nMode ), l_open returned 0
Leaving int lobOpen ( Oid oid , int nMode )

Entering lobRead ( char * caBuff , int nLen )
Length is 1048575, FD is 0
Leaving lobRead ( char * caBuff , int nLen ), returning 1151

Entering lobClose () , FD is 0

PQfn: expected a 'V' from the backend. Got 'N' instead

As you can see the lob is opened and read OK, and the data
returned by the read is correct.  But closing kills
everything.  Does anyone know that this error means?

The contents of the trace file (PQtrace (PQconn * , FILE *)
is :
To backend> Qselect proname, oid from pg_proc	    		where proname = 'lo_open'			   or proname = 'lo_close'			   or proname = 'lo_creat'			   or proname = 'lo_unlink'			   or proname = 'lo_lseek'			   or proname = 'lo_tell'			   or proname = 'loread'			   or proname = 'lowrite'

>From backend> P
>From backend> "blank"
>From backend> T
>From backend (#2)> 2
>From backend> "proname"
>From backend (#4)> 19
>From backend (#2)> 32
>From backend> "oid"
>From backend (#4)> 26
>From backend (#2)> 4
>From backend> D
>From backend (1)> 
>From backend (#4)> 11
>From backend (7)> lo_open
>From backend (#4)> 7
>From backend (3)> 952
>From backend (1)> 
>From backend (#4)> 12
>From backend (8)> lo_close
>From backend (#4)> 7
>From backend (3)> 953
>From backend (1)> 
>From backend (#4)> 10
>From backend (6)> loread
>From backend (#4)> 7
>From backend (3)> 954
>From backend (1)> 
>From backend (#4)> 11
>From backend (7)> lowrite
>From backend (#4)> 7
>From backend (3)> 955
>From backend (1)> 
>From backend (#4)> 12
>From backend (8)> lo_lseek
>From backend (#4)> 7
>From backend (3)> 956
>From backend (1)> 
>From backend (#4)> 12
>From backend (8)> lo_creat
>From backend (#4)> 7
>From backend (3)> 957
>From backend (1)> 
>From backend (#4)> 11
>From backend (7)> lo_tell
>From backend (#4)> 7
>From backend (3)> 958
>From backend (1)> 
>From backend (#4)> 13
>From backend (9)> lo_unlink
>From backend (#4)> 7
>From backend (3)> 964
>From backend> "SELECT"
To backend> F 
To backend (4#)> 952
To backend (4#)> 2
To backend (4#)> 4
To backend (4#)> 145147
To backend (4#)> 4
To backend (4#)> 262144
>From backend> V
>From backend> G
>From backend (#4)> 4
>From backend (#4)> 0
>From backend> 0
To backend> F 
To backend (4#)> 956
To backend (4#)> 3
To backend (4#)> 4
To backend (4#)> 0
To backend (4#)> 4
To backend (4#)> 0
To backend (4#)> 4
To backend (4#)> 0
>From backend> V
>From backend> G
>From backend (#4)> 4
>From backend (#4)> 0
>From backend> 0
To backend> F 
To backend (4#)> 954
To backend (4#)> 2
To backend (4#)> 4
To backend (4#)> 0
To backend (4#)> 4
To backend (4#)> 1048575
>From backend> V
>From backend> G
>From backend (#4)> 1151
>From backend (1151)> 
Hi there, I got a new video card (matrox millenium) and would like to know
how to switch X-servers before I plug it in. I'm using the XFree86 3.3.2
rpms from the RH 4.2 updates. /usr/X11/bin/X is a link to a binary called
Xwrapper and then I also have XFree86_S3 and XFree_SVGA in that directory.
At the moment it uses the S3 server which works fine with my old card. How
will I be able to switch it to the SVGAserver needed for the new card ???
Does anyone know what that Xwrapper does or whether I can simply bypass it
and make X a link to the SVGA server ??  Thanks,
                                                        GErald

                     \\\|///
                     | ~ ~ | 
                    (- 0 0 -)
------------------oOOo-(_)-oOOo------------------
Gerald Willmann           Department of Economics
96F Escondido Vlg.        Stanford University
Stanford, CA 94305        CA 94305-6072, USA
+1(650)497-0902   oooO    725-8921 / 5702 (fax)        
------------------(  )-----Oooo------------------                
                   \ (     (  )
                    \_)    ) /
                          (_/
>From backend> 0
To backend> F 
To backend (4#)> 953
To backend (4#)> 1
To backend (4#)> 4
To backend (4#)> 0
>From backend> N



Thanks all! :-)

Peter


Responses

pgsql-interfaces by date

Next:From: Tom LaneDate: 1998-10-26 01:22:09
Subject: Re: [INTERFACES] aborted transactions
Previous:From: Peter GarnerDate: 1998-10-25 12:34:14
Subject: aborted transactions

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group