"Dejan Vucinic" <hotdejan@hotmail.com> writes:
>> From: Tom Lane <tgl@sss.pgh.pa.us>
>> Probably you are not wrapping the operation into a transaction
>> (BEGIN/COMMIT). Large object descriptors are only good to the end of
>> the current transaction.
> I believe I am, the code looks like this:
> connection.setAutoCommit(false);
> insert = connection.prepareStatement(
> "INSERT INTO FOO (A, B) VALUES (?, ?)");
> insert.setString(1, somestring);
> insert.setBytes(2, byte[] xx);
> insert.executeUpdate();
> connection.commit();
> connection.setAutoCommit(true);
I have no idea what that actually does at the database level.
In particular, does the setAutoCommit(false) routine send a
BEGIN, or does it only set some state that affects later operations?
If there's not a BEGIN sent before the LO operations, they'll fail.
You might try turning on query logging at the postmaster to see
what requests are really being transmitted.
regards, tom lane