Re: pg_dump: largeobject behavior issues (possible bug)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pg_dump: largeobject behavior issues (possible bug)
Дата
Msg-id 13808.1429979542@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: pg_dump: largeobject behavior issues (possible bug)  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: pg_dump: largeobject behavior issues (possible bug)  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
> On 04/24/2015 06:41 PM, Tom Lane wrote:
>> Yeah, this was brought up when we added per-large-object metadata; it was
>> obvious that that patch would cause pg_dump to choke on large numbers of
>> large objects.  The (perhaps rather lame) argument was that you wouldn't
>> have that many of them.

>> Given that large objects don't have any individual dependencies,
>> one could envision fixing this by replacing the individual large-object
>> DumpableObjects by a single placeholder to participate in the sort phase,
>> and then when it's time to dump that, scan the large objects using a
>> cursor and create/print/delete the information separately for each one.
>> This would likely involve some rather painful refactoring in pg_dump
>> however.

> I think we need to think about this some more, TBH, I'm not convinced 
> that the changes made back in 9.0 were well conceived. Having separate 
> TOC entries for each LO seems wrong in principle, although I understand 
> why it was done.

Perhaps.  One advantage of doing it this way is that you can get
pg_restore to extract a single LO from an archive file; though it's
debatable whether that's worth the potential resource-consumption hazards.
Another issue is that restore options such as --no-owner and
--no-privileges would not work for LOs (at least not without messy hacks)
if we go back to a scheme where all the LO information is just SQL
commands inside a single TOC object.

After further thought I realized that if we simply hack pg_dump to emit
the LOs in a streaming fashion, but keep the archive-file representation
the same as it is now, then we haven't really fixed the problem because
pg_restore is still likely to choke when it tries to read the archive's
TOC.  So my proposal above isn't enough either.

Perhaps what we need is some sort of "second-level TOC" which is only ever
processed in a streaming fashion, by both pg_dump and pg_restore.  This
would not support dependency resolution or re-ordering, but we don't need
those abilities for LOs.
        regards, tom lane



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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: pg_dump: largeobject behavior issues (possible bug)
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: pg_dump: largeobject behavior issues (possible bug)