postgres.git / summary / log / commit / refs

commit    dd1a5b09bf070eff699c241b6de28453924e5613
Author:   Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date:     Tue Jun 24 09:31:36 2014 +0000

    Don't allow foreign tables with OIDs.
    
    The syntax doesn't let you specify "WITH OIDS" for foreign tables, but it
    was still possible with default_with_oids=true. But the rest of the system,
    including pg_dump, isn't prepared to handle foreign tables with OIDs
    properly.
    
    Backpatch down to 9.1, where foreign tables were introduced. It's possible
    that there are databases out there that already have foreign tables with
    OIDs. There isn't much we can do about that, but at least we can prevent
    them from being created in the future.
    
    Patch by Etsuro Fujita, reviewed by Hadi Moshayedi.


src/backend/commands/tablecmds.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 02736eef7e9..3e2e346c724 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -517,7 +517,10 @@ DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId) */ descriptor = BuildDescForRelation(schema); - localHasOids = interpretOidsOption(stmt->options); + if (relkind == RELKIND_FOREIGN_TABLE) + localHasOids = false; + else + localHasOids = interpretOidsOption(stmt->options); descriptor->tdhasoid = (localHasOids || parentOidCount > 0); /* [parent: cbc0517c3200]