A Gattiker <agattik(at)gmail(dot)com> writes:
> I have procedures that create temporary tables every time. When those
> procedures are called many times in a single transaction I get an "out
> of shared memory error". This happens even if the temporary tables are
> correctly dropped as shown in the example below. Does postgres retain
> a lock to a dropped object? How may I prevent this?
Yes, and you can't, because the object is not actually dropped until end
of transaction. I'd suggest rethinking your temp table use: that design
is going to bloat the system catalogs enormously, even if you weren't
running out of lock space.
regards, tom lane