summaryrefslogtreecommitdiff
path: root/src/backend/rewrite/rewriteSupport.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/rewrite/rewriteSupport.c')
-rw-r--r--src/backend/rewrite/rewriteSupport.c84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/backend/rewrite/rewriteSupport.c b/src/backend/rewrite/rewriteSupport.c
deleted file mode 100644
index ba590b8cc66..00000000000
--- a/src/backend/rewrite/rewriteSupport.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * rewriteSupport.c
- *
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.52 2002/06/20 20:29:34 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres.h"
-
-#include "access/heapam.h"
-#include "catalog/catname.h"
-#include "catalog/indexing.h"
-#include "rewrite/rewriteSupport.h"
-#include "utils/syscache.h"
-
-
-/*
- * Is there a rule by the given name?
- */
-bool
-IsDefinedRewriteRule(Oid owningRel, const char *ruleName)
-{
- return SearchSysCacheExists(RULERELNAME,
- ObjectIdGetDatum(owningRel),
- PointerGetDatum(ruleName),
- 0, 0);
-}
-
-
-/*
- * SetRelationRuleStatus
- * Set the value of the relation's relhasrules field in pg_class;
- * if the relation is becoming a view, also adjust its relkind.
- *
- * NOTE: caller must be holding an appropriate lock on the relation.
- *
- * NOTE: an important side-effect of this operation is that an SI invalidation
- * message is sent out to all backends --- including me --- causing relcache
- * entries to be flushed or updated with the new set of rules for the table.
- * Therefore, we execute the update even if relhasrules has the right value
- * already. Possible future improvement: skip the disk update and just send
- * an SI message in that case.
- */
-void
-SetRelationRuleStatus(Oid relationId, bool relHasRules,
- bool relIsBecomingView)
-{
- Relation relationRelation;
- HeapTuple tuple;
- Relation idescs[Num_pg_class_indices];
-
- /*
- * Find the tuple to update in pg_class, using syscache for the
- * lookup.
- */
- relationRelation = heap_openr(RelationRelationName, RowExclusiveLock);
- tuple = SearchSysCacheCopy(RELOID,
- ObjectIdGetDatum(relationId),
- 0, 0, 0);
- if (!HeapTupleIsValid(tuple))
- elog(ERROR, "SetRelationRuleStatus: cache lookup failed for relation %u", relationId);
-
- /* Do the update */
- ((Form_pg_class) GETSTRUCT(tuple))->relhasrules = relHasRules;
- if (relIsBecomingView)
- ((Form_pg_class) GETSTRUCT(tuple))->relkind = RELKIND_VIEW;
-
- simple_heap_update(relationRelation, &tuple->t_self, tuple);
-
- /* Keep the catalog indices up to date */
- CatalogOpenIndices(Num_pg_class_indices, Name_pg_class_indices, idescs);
- CatalogIndexInsert(idescs, Num_pg_class_indices, relationRelation, tuple);
- CatalogCloseIndices(Num_pg_class_indices, idescs);
-
- heap_freetuple(tuple);
- heap_close(relationRelation, RowExclusiveLock);
-}