• Tom Lane's avatar
    Fix failure due to accessing an already-freed tuple descriptor in a plan · 0cbc5b1e
    Tom Lane authored
    involving HashAggregate over SubqueryScan (this is the known case, there
    may well be more).  The bug is only latent in releases before 8.2 since they
    didn't try to access tupletable slots' descriptors during ExecDropTupleTable.
    The least bogus fix seems to be to make subqueries share the parent query's
    memory context, so that tupdescs they create will have the same lifespan as
    those of the parent query.  There are comments in the code envisioning going
    even further by not having a separate child EState at all, but that will
    require rethinking executor access to range tables, which I don't want to
    tackle right now.  Per bug report from Jean-Pierre Pelletier.
    0cbc5b1e
executor.h 11 KB