A Gattiker <agattik@xxxxxxxxx> 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