From 1d6c72a55b23554cfb946527dc77f9d80044ae2c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 6 May 2013 13:26:51 -0400 Subject: Move materialized views' is-populated status into their pg_class entries. Previously this state was represented by whether the view's disk file had zero or nonzero size, which is problematic for numerous reasons, since it's breaking a fundamental assumption about heap storage. This was done to allow unlogged matviews to revert to unpopulated status after a crash despite our lack of any ability to update catalog entries post-crash. However, this poses enough risk of future problems that it seems better to not support unlogged matviews until we can find another way. Accordingly, revert that choice as well as a number of existing kluges forced by it in favor of creating a pg_class.relispopulated flag column. --- src/backend/utils/adt/dbsize.c | 27 --------------------------- 1 file changed, 27 deletions(-) (limited to 'src/backend/utils/adt/dbsize.c') diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index d32d9014c7e..4c4e1ed8202 100644 --- a/src/backend/utils/adt/dbsize.c +++ b/src/backend/utils/adt/dbsize.c @@ -834,30 +834,3 @@ 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. It is expected that other conditions for allowing a - * materialized view to be scanned will be added in later releases. - */ -Datum -pg_relation_is_scannable(PG_FUNCTION_ARGS) -{ - Oid relid; - Relation relation; - bool result; - - relid = PG_GETARG_OID(0); - relation = try_relation_open(relid, AccessShareLock); - - if (relation == NULL) - PG_RETURN_BOOL(false); - - result = RelationIsScannable(relation); - - relation_close(relation, AccessShareLock); - PG_RETURN_BOOL(result); -} -- cgit v1.2.3