• Tom Lane's avatar
    Fix whole-row Var evaluation to cope with resjunk columns (again). · 8e617e29
    Tom Lane authored
    When a whole-row Var is reading the result of a subquery, we need it to
    ignore any "resjunk" columns that the subquery might have evaluated for
    GROUP BY or ORDER BY purposes.  We've hacked this area before, in commit
    68e40998, but that fix only covered
    whole-row Vars of named composite types, not those of RECORD type; and it
    was mighty klugy anyway, since it just assumed without checking that any
    extra columns in the result must be resjunk.  A proper fix requires getting
    hold of the subquery's targetlist so we can actually see which columns are
    resjunk (whereupon we can use a JunkFilter to get rid of them).  So bite
    the bullet and add some infrastructure to make that possible.
    
    Per report from Andrew Dunstan and additional testing by Merlin Moncure.
    Back-patch to all supported branches.  In 8.3, also back-patch commit
    292176a1, which for some reason I had
    not done at the time, but it's a prerequisite for this change.
    8e617e29
subselect.sql 9.82 KB