diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2015-05-09 13:06:49 -0400 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2015-05-09 13:06:49 -0400 |
commit | 0c90f6769de6a60f842c916d49b404d03bcc503a (patch) | |
tree | 519db4b7b0d468bd6df426169fcea5eb0688697b /src/backend/catalog/dependency.c | |
parent | 0cf56f14dd15532fec930b502cb6457023b01ef8 (diff) | |
download | postgresql-0c90f6769de6a60f842c916d49b404d03bcc503a.tar.gz postgresql-0c90f6769de6a60f842c916d49b404d03bcc503a.zip |
Add new OID alias type regrole
The new type has the scope of whole the database cluster so it doesn't
behave the same as the existing OID alias types which have database
scope,
concerning object dependency. To avoid confusion constants of the new
type are prohibited from appearing where dependencies are made involving
it.
Also, add a note to the docs about possible MVCC violation and
optimization issues, which are general over the all reg* types.
Kyotaro Horiguchi
Diffstat (limited to 'src/backend/catalog/dependency.c')
-rw-r--r-- | src/backend/catalog/dependency.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 6271f8f5a03..0ab57322f35 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -1602,6 +1602,16 @@ find_expr_references_walker(Node *node, add_object_address(OCLASS_TSDICT, objoid, 0, context->addrs); break; + + /* + * Dependencies for regrole should be shared among all + * databases, so explicitly inhibit to have dependencies. + */ + case REGROLEOID: + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("constant of the type \'regrole\' cannot be used here"))); + break; } } return false; |