Wolfgang Hottgenroth <wn@kja-essen.de> writes:
> Sometimes ago I want to switch from 6.4.2 to 6.5.1 and my tools, using
> the large objects through the perl-library refused to work. lo_import
> didn't work anymore.
6.5.* only allows large objects to be kept open within a single
transaction; you have to wrap BEGIN...END around anything that involves
lo_open ... lo_read/write ... lo_close. In particular, since lo_import
and lo_export are just such sequences, they need to be called inside
a transaction.
This restriction has been documented as required all along, but older
Postgres releases didn't enforce it (they'd just fail once in a while
if you didn't do it :-().
It'd be nice if lo_import could start/finish a transaction for itself,
but I don't see any good way to do that without breaking things for
the case that you want to do several lo_imports in one transaction.
regards, tom lane