|
|
|
@ -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; |
|
|
|
|
} |
|
|
|
|