• Tom Lane's avatar
    Change ALTER TABLE SET WITHOUT OIDS to rewrite the whole table to physically · 6d1e3618
    Tom Lane authored
    get rid of the OID column.  This eliminates the problem discovered by Heikki
    back in November that 8.4's suppression of "unnecessary" junk filtering in
    INSERT/SELECT could lead to an Assert failure, or storing of oids into a table
    that shouldn't have them if Asserts are off.  While that particular problem
    could have been solved in other ways, it seems likely to be just a forerunner
    of things to come if we continue to allow tables to contain rows that disagree
    with the pg_class.relhasoids setting.  It's better to make this operation slow
    than to sacrifice performance or risk bugs in more common code paths.
    
    Also, add ALTER TABLE SET WITH OIDS to rewrite the table to add oids.
    This was a bit more controversial, but in view of the very small amount of
    extra code needed given the current ALTER TABLE infrastructure, it seems best
    to eliminate the asymmetry in features.
    6d1e3618
parsenodes.h 76.4 KB