From 549dae0352a06a43ec664dc158556e12ec2d30e5 Mon Sep 17 00:00:00 2001 From: Kevin Grittner Date: Fri, 22 Mar 2013 13:27:34 -0500 Subject: Fix problems with incomplete attempt to prohibit OIDS with MVs. Problem with assertion failure in restoring from pg_dump output reported by Joachim Wieland. Review and suggestions by Tom Lane and Robert Haas. --- src/backend/commands/createas.c | 6 +++++- src/backend/commands/tablecmds.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/backend/commands') diff --git a/src/backend/commands/createas.c b/src/backend/commands/createas.c index a3ff1d56c8..06bbae5cc5 100644 --- a/src/backend/commands/createas.c +++ b/src/backend/commands/createas.c @@ -218,11 +218,15 @@ GetIntoRelEFlags(IntoClause *intoClause) * because it doesn't have enough information to do so itself (since we * can't build the target relation until after ExecutorStart). */ - if (interpretOidsOption(intoClause->options)) + if (interpretOidsOption(intoClause->options, intoClause->relkind)) flags = EXEC_FLAG_WITH_OIDS; else flags = EXEC_FLAG_WITHOUT_OIDS; + Assert(intoClause->relkind != RELKIND_MATVIEW || + (flags & (EXEC_FLAG_WITH_OIDS | EXEC_FLAG_WITHOUT_OIDS)) == + EXEC_FLAG_WITHOUT_OIDS); + if (intoClause->skipData) flags |= EXEC_FLAG_WITH_NO_DATA; diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 57cf0a07b5..536d232dd4 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -559,7 +559,7 @@ DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId) */ descriptor = BuildDescForRelation(schema); - localHasOids = interpretOidsOption(stmt->options); + localHasOids = interpretOidsOption(stmt->options, relkind); descriptor->tdhasoid = (localHasOids || parentOidCount > 0); /* -- cgit v1.2.1