• Tom Lane's avatar
    Fix CREATE TABLE ... LIKE ... WITH OIDS. · 1ead0208
    Tom Lane authored
    Having a WITH OIDS specification should result in the creation of an OID
    column, but commit b943f502 broke that in the case that there were LIKE
    tables without OIDS.  Commentary in that patch makes it look like this was
    intentional, but if so it was based on a faulty reading of what inheritance
    does: the parent tables can add an OID column, but they can't subtract one.
    AFAICS, the behavior ought to be that you get an OID column if any of the
    inherited tables, LIKE tables, or WITH clause ask for one.
    
    Also, revert that patch's unnecessary split of transformCreateStmt's loop
    over the tableElts list into two passes.  That seems to have been based on
    a misunderstanding as well: we already have two-pass processing here,
    we don't need three passes.
    
    Per bug #14474 from Jeff Dafoe.  Back-patch to 9.6 where the misbehavior
    was introduced.
    
    Report: https://postgr.es/m/20161222145304.25620.47445@wrigleys.postgresql.org
    1ead0208
create_table_like.out 10.8 KB