Skip to content
Snippets Groups Projects
Commit b56818ab authored by Peter Eisentraut's avatar Peter Eisentraut
Browse files

Teach pgrowlocks to check relkind before scanning

Author: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
parent fb886c15
No related branches found
No related tags found
No related merge requests found
......@@ -97,7 +97,19 @@ pgrowlocks(PG_FUNCTION_ARGS)
relname = PG_GETARG_TEXT_PP(0);
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment