Tom Lane wrote:
> Joseph Shraibman <jks@selectacast.net> writes:
>> + <para>
>> + Savepoints use shared memory. If you use many savepoints without
>> releasing them, you
>> + will run out of shared memory and you may see an error like this in
>> your log:
>
> I do not see the point of this. Shall we put equivalent disclaimers
> into every single construct that consumes shared memory? There is no
> such paragraph under LOCK TABLE, for example.
>
Because one is unlikely to lock so many tables that they run out of
shared memory. On the other hand if someone does like I did, which is
in a loop:
SAVEPOINT ;
UPDATE;
and does not realize that SAVEPOINT uses shared memory they can get
themselves in trouble.
You don't have to have the error message example, but I really think
some sort of message is needed. Right now it is not clear that
savepoints use shared memory at all. A user might assume they just
exist on the disk somehow, or in regular nonshared memory.