On Tue, Feb 28, 2012 at 6:54 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
>> ... which is the ORM library (SQLAlchemy) doing a reflection of the
>> table(s) involved.
>
> Oh, there's an ORM involved? I'll bet a nickel it's doing something
> surprising, like not issuing your SET until much later than you thought.
I'd rather go for an auto-rollback at some point within the
transaction that issued the set work_mem. SQLA tends to do that if,
for instance, an exception is risen within a transaction block (ie,
flushing).
You can issue the set work_mem in its own transaction, and commit it,
and in that way avoid that rollback.