• Tom Lane's avatar
    Un-break pg_upgrade from pre-v12 servers. · 3f96af46
    Tom Lane authored
    I neglected to test this scenario while preparing commit f3faf35f,
    so of course it was broken, thanks to some very obscure and undocumented
    code in pg_dump.  Pre-v12 databases might have toast tables attached to
    partitioned tables, which we need to ignore since newer servers never
    create such useless toast tables.  There was a filter for this case in
    binary_upgrade_set_type_oids_by_rel_oid(), which appeared to just
    prevent the pg_type OID from being copied.  But actually it managed to
    prevent the toast table from being created at all --- or it did before
    I took out that logic.  But that was a fundamentally bizarre place to be
    making the test in the first place.  The place where the filter should
    have been, one would think, is binary_upgrade_set_pg_class_oids(), so
    add it there.
    
    While at it, reorganize binary_upgrade_set_pg_class_oids() so that it
    doesn't make a completely useless query when it knows it's being
    invoked for an index.  And correct a comment that mis-described the
    scenario where we need to force creation of a TOAST table.
    
    Per buildfarm.
    3f96af46
pg_dump.c 564 KB