Search Postgresql Archives

Re: losing my large objects with Postgresql 8.1.4 and 8.1.5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Eric Davies <Eric@xxxxxxxxxxxxx> writes:
> Some of  my custom server functions/data types that work correctly 
> under Postgresql 8.0.1 are having trouble with lost large objects 
> under Postgresql 8.1.4 and Postgresql 8.1.5, but only in particular 
> usages.

> When I execute the following sequence of commands:
>          select   MyTypeToText( BuildMyType('asdf'));
> I get the following error
>          ERROR:  large object 33016 does not exist
> \lo_list (in psql) doesn't show any new large objects.

MyTypeToText is probably referencing a start-of-statement snapshot,
in which the LO doesn't exist yet.  This is a consequence of making
read-only accesses to LOs be MVCC-compliant.  Probably your best bet
for working around it is to open the LO in read/write mode, even if
you don't intend to write it --- that will make the behavior like 8.0.

Relevant 8.1 release note:

     Read-only large object descriptors now obey MVCC snapshot semantics 

     When a large object is opened with INV_READ (and not INV_WRITE),
     the data read from the descriptor will now reflect a "snapshot" of
     the large object's state at the time of the transaction snapshot in
     use by the query that called lo_open(). To obtain the old behavior
     of always returning the latest committed data, include INV_WRITE in
     the mode flags for lo_open().


			regards, tom lane


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux