> Yes, if you look inside ExecEvalExpr(), you will see it tries to get a
> value for the expression(Datum). It may return an int, float4, or a
> string. In the last case, that is actually a pointer and not a specific
> value.
>
> So, in some cases, the value can just be thrown away, or it may be a
> pointer to memory that can be freed after the call to heap_formtuple()
> later in the function. The trick is to find the function call in
> ExecEvalExpr() that is allocating something, and conditionally free
> values[] after the call to heap_formtuple(). If you don't want find it,
> perhaps you can send me enough info so I can see it here.
>
> I wonder whether it is the call to CreateTupleDescCopy() inside
> ExecEvalVar()?
I am now not totally sure about what I said above. The general plan,
though is accurate, that perhaps something is being allocated. I need
to see the query again, which I don't have anymore.
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026