From 1b5cffacdffaf1cdedb60ff4bc160e65261eb4eb Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 12 Aug 2001 21:35:19 +0000 Subject: Make ALTER TABLE RENAME on a view rename the view's on-select rule too. Needed to keep pg_dump from getting confused. --- src/backend/commands/rename.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/backend/commands/rename.c') 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); + } } -- cgit v1.2.3