• Tom Lane's avatar
    Fix set_rel_width() to do something reasonable with non-Var items in a · 014be150
    Tom Lane authored
    RelOptInfo targetlist.  It used to be that the only possibility other than
    a Var was a RowExpr representing a whole-row child Var, but as of 8.4's
    expanded ability to flatten appendrel members, we can get arbitrary expressions
    in there.  Use the expression's type info and get_typavgwidth() to produce
    an at-least-marginally-sane result.  Note that get_typavgwidth()'s fallback
    estimate (32 bytes) is the same as what was here before, so there will be
    no behavioral change for RowExprs.  Noted while looking at recent gripe
    about constant quals pushed down to FunctionScan appendrel members ...
    not only were we failing to recognize the constant qual, we were getting
    the width estimate wrong :-(
    014be150
costsize.c 95.1 KB