Commit b56818ab authored by Peter Eisentraut's avatar Peter Eisentraut

Teach pgrowlocks to check relkind before scanning

Author: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
parent fb886c15
...@@ -97,7 +97,19 @@ pgrowlocks(PG_FUNCTION_ARGS) ...@@ -97,7 +97,19 @@ pgrowlocks(PG_FUNCTION_ARGS)
relname = PG_GETARG_TEXT_PP(0); relname = PG_GETARG_TEXT_PP(0);
relrv = makeRangeVarFromNameList(textToQualifiedNameList(relname)); relrv = makeRangeVarFromNameList(textToQualifiedNameList(relname));
rel = heap_openrv(relrv, AccessShareLock); rel = relation_openrv(relrv, AccessShareLock);
if (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("\"%s\" is a partitioned table",
RelationGetRelationName(rel)),
errdetail("Partitioned tables do not contain rows.")));
else if (rel->rd_rel->relkind != RELKIND_RELATION)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("\"%s\" is not a table",
RelationGetRelationName(rel))));
/* /*
* check permissions: must have SELECT on table or be in * check permissions: must have SELECT on table or be in
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment