Re: [BUG] lo_open() makes a warning/falls to an assertion

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: [BUG] lo_open() makes a warning/falls to an assertion
Дата
Msg-id 20081203022038.GR5672@alvh.no-ip.org
обсуждение исходный текст
Ответ на Re: [BUG] lo_open() makes a warning/falls to an assertion  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
> > I think the solution is to have each large object have its own
> > ResourceOwner, and store the snapshot in it.  Otherwise the snapshot is
> > left in the calling query's resowner, which is not good.
> 
> That's not gonna scale to transactions that touch lots of large objects
> (think pg_dump).  Also it seems like it would be arbitrarily altering
> the past behavior of LOs.  Why don't they just use the calling query's
> snapshot (which I think is what the historical behavior is, though I'm
> too lazy to check right now)?

Well, that's precisely the problem -- they cannot use the query snapshot
(which is what the current buggy code is doing), because the query goes
away just after calling lo_open, but the snapshot needs to survive until
after lo_close is called (or until end of xact).  So the last patch I
sent deals with the problem by recording the snapshot in the
transaction's resowner instead, by momentarily setting it as current.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: Erroring out on parser conflicts
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Erroring out on parser conflicts