summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-06-24 12:31:36 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-06-24 13:30:54 +0300
commit1c9f9e888fc2d86446f445d768ff076b1643e167 (patch)
tree0163751ec94035767b0b7e5d3d97a954f84a0f4e /src
parent07353de4fbcd7ee93a445dc6bf2bb32f05fffef1 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/tablecmds.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 6136e546a19..288757aa508 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -550,7 +550,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);
/*