• Tom Lane's avatar
    Make the world very nearly safe for composite-type columns in tables. · ae93e5fd
    Tom Lane authored
    1. Solve the problem of not having TOAST references hiding inside composite
    values by establishing the rule that toasting only goes one level deep:
    a tuple can contain toasted fields, but a composite-type datum that is
    to be inserted into a tuple cannot.  Enforcing this in heap_formtuple
    is relatively cheap and it avoids a large increase in the cost of running
    the tuptoaster during final storage of a row.
    2. Fix some interesting problems in expansion of inherited queries that
    reference whole-row variables.  We never really did this correctly before,
    but it's now relatively painless to solve by expanding the parent's
    whole-row Var into a RowExpr() selecting the proper columns from the
    child.
    If you dike out the preventive check in CheckAttributeType(),
    composite-type columns now seem to actually work.  However, we surely
    cannot ship them like this --- without I/O for composite types, you
    can't get pg_dump to dump tables containing them.  So a little more
    work still to do.
    ae93e5fd
typcache.c 16.3 KB