Hiroshi Inoue <[EMAIL PROTECTED]> writes:
> While examining recursive use of catalog cache,I found
> a refcnt leak of relations.
> After further investigation,I found that the following seems
> to be the cause.
> [ in EndAppend() in nodeAppend.c ]
appendstate-> as_result_relation_info_list = NIL;
That doesn't look like a problem to me --- the result relations *have*
been closed, just above this line.
> BTW,doesn't EndAppend() neglect to call ExecCloseIndices()
> for RelationInfos of appendstate->as_result_relation_info_list ?
Comparing nodeAppend to EndPlan(), I think you are right --- each
resultinfo should have ExecCloseIndices applied too, in the loop just
above the line you quote. This did not use to be a problem because
Append plans were readonly, but now that we have UPDATE/DELETE on
inheritance hierarchies, there's a missing step here. Was your test
query of that kind?
regards, tom lane