large object error
От | Peter Garner |
---|---|
Тема | large object error |
Дата | |
Msg-id | 199810260100.AA107415366@piglet.toward.com обсуждение исходный текст |
Ответы |
Re: [INTERFACES] large object error
(Peter T Mount <peter@retep.org.uk>)
Re: [INTERFACES] large object error (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | 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
В списке pgsql-interfaces по дате отправления: