mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
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.
This commit is contained in:
@ -243,9 +243,14 @@ interpretInhOption(InhOption inhOpt)
|
||||
* table/result set should be created with OIDs. This needs to be done after
|
||||
* parsing the query string because the return value can depend upon the
|
||||
* default_with_oids GUC var.
|
||||
*
|
||||
* Materialized views are handled here rather than reloptions.c because that
|
||||
* code explicitly punts checking for oids to here. We prohibit any explicit
|
||||
* specification of the oids option for a materialized view, and indicate that
|
||||
* oids are not needed if we don't get an error.
|
||||
*/
|
||||
bool
|
||||
interpretOidsOption(List *defList)
|
||||
interpretOidsOption(List *defList, char relkind)
|
||||
{
|
||||
ListCell *cell;
|
||||
|
||||
@ -256,9 +261,19 @@ interpretOidsOption(List *defList)
|
||||
|
||||
if (def->defnamespace == NULL &&
|
||||
pg_strcasecmp(def->defname, "oids") == 0)
|
||||
{
|
||||
if (relkind == RELKIND_MATVIEW)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("unrecognized parameter \"%s\"", "oids")));
|
||||
|
||||
return defGetBoolean(def);
|
||||
}
|
||||
}
|
||||
|
||||
if (relkind == RELKIND_MATVIEW)
|
||||
return false;
|
||||
|
||||
/* OIDS option was not specified, so use default. */
|
||||
return default_with_oids;
|
||||
}
|
||||
|
Reference in New Issue
Block a user