aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/rename.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/rename.c')
-rw-r--r--src/backend/commands/rename.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/backend/commands/rename.c b/src/backend/commands/rename.c
index 52568f29f5f..d56c7f2652c 100644
--- a/src/backend/commands/rename.c
+++ b/src/backend/commands/rename.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.56 2001/03/22 03:59:23 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.57 2001/08/12 21:35:18 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -26,6 +26,8 @@
#include "miscadmin.h"
#include "storage/smgr.h"
#include "optimizer/prep.h"
+#include "rewrite/rewriteDefine.h"
+#include "rewrite/rewriteSupport.h"
#include "utils/acl.h"
#include "utils/relcache.h"
#include "utils/syscache.h"
@@ -265,4 +267,17 @@ renamerel(const char *oldrelname, const char *newrelname)
*/
if (relkind != RELKIND_INDEX)
TypeRename(oldrelname, newrelname);
+
+ /*
+ * If it's a view, must also rename the associated ON SELECT rule.
+ */
+ if (relkind == RELKIND_VIEW)
+ {
+ char *oldrulename,
+ *newrulename;
+
+ oldrulename = MakeRetrieveViewRuleName(oldrelname);
+ newrulename = MakeRetrieveViewRuleName(newrelname);
+ RenameRewriteRule(oldrulename, newrulename);
+ }
}