Apply 58a9596ed4a509467e1781b433ff9c65a4e5b5ce from plpgsql to pltsql so as to "Fix I/O-conversion-related memory leaks".
Apply 58a9596ed4a509467e1781b433ff9c65a4e5b5ce from plpgsql to pltsql so
as to "Fix I/O-conversion-related memory leaks".

The original commit message from Tom Lane follows:

Fix I/O-conversion-related memory leaks in plpgsql.

Datatype I/O functions are allowed to leak memory in CurrentMemoryContext,
since they are generally called in short-lived contexts.  However, plpgsql
calls such functions for purposes of type conversion, and was calling them
in its procedure context.  Therefore, any leaked memory would not be
recovered until the end of the plpgsql function.  If such a conversion
was done within a loop, quite a bit of memory could get consumed.  Fix by
calling such functions in the transient "eval_econtext", and adjust other
logic to match.  Back-patch to all supported versions.

Andres Freund, Jan Urbański, Tom Lane

tpostgres-projects/tPostgres,tpostgres-projects/tPostgres,tpostgres-projects/tPostgres,tpostgres-projects/tPostgres,tpostgres-projects/tPostgres