diff options
Diffstat (limited to 'src/backend/utils/adt/dbsize.c')
-rw-r--r-- | src/backend/utils/adt/dbsize.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index 11b004072f6..d589d26070d 100644 --- a/src/backend/utils/adt/dbsize.c +++ b/src/backend/utils/adt/dbsize.c @@ -719,6 +719,7 @@ pg_relation_filenode(PG_FUNCTION_ARGS) switch (relform->relkind) { case RELKIND_RELATION: + case RELKIND_MATVIEW: case RELKIND_INDEX: case RELKIND_SEQUENCE: case RELKIND_TOASTVALUE: @@ -767,6 +768,7 @@ pg_relation_filepath(PG_FUNCTION_ARGS) switch (relform->relkind) { case RELKIND_RELATION: + case RELKIND_MATVIEW: case RELKIND_INDEX: case RELKIND_SEQUENCE: case RELKIND_TOASTVALUE: @@ -832,3 +834,25 @@ pg_relation_filepath(PG_FUNCTION_ARGS) PG_RETURN_TEXT_P(cstring_to_text(path)); } + + +/* + * Indicate whether a relation is scannable. + * + * Currently, this is always true except for a materialized view which has not + * been populated. + */ +Datum +pg_relation_is_scannable(PG_FUNCTION_ARGS) +{ + Oid relid; + Relation relation; + bool result; + + relid = PG_GETARG_OID(0); + relation = RelationIdGetRelation(relid); + result = relation->rd_isscannable; + RelationClose(relation); + + PG_RETURN_BOOL(result); +} |