Eildert Groeneveld <eg@tzv.fal.de> writes:
> Herouth was right in stating: "memory used for substr function" has to be
> the real cause of the problem because any substr select exhibits this
> behaviour:
> select substr(tets,1,2) from raw_field;
> This one starts the postmaster at around 3MB and finishes at 40.
> Unfortunately, I have no idea about C, can someone identify the problem
> and come up with a patch?
The problem is well known and is on the TO-DO list: memory consumed
while evaluating expressions is not reclaimed until end of statement.
It's by no means specific to substr().
Unfortunately, fixing it is not a small amount of work (else it'd have
been done already). I'm hoping to see it fixed in 6.6.
regards, tom lane