diff options
author | Bruce Momjian <bruce@momjian.us> | 1998-10-06 22:14:21 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1998-10-06 22:14:21 +0000 |
commit | 803204bd1ec45288545f9923dd122f606dcee16e (patch) | |
tree | a726558d9a49a2311be96ea1fc592a4c6cac65f6 /src/backend/rewrite/rewriteDefine.c | |
parent | 57d57d950092867213604f05e67a75a440a67e2d (diff) | |
download | postgresql-803204bd1ec45288545f9923dd122f606dcee16e.tar.gz postgresql-803204bd1ec45288545f9923dd122f606dcee16e.zip |
Playing around with pg_dump for a while resulted in some
fixes, enhancements and some found bugs not yet fixed. After
all I was able to get useful results when dumping/reloading
the regression database.
Jan
Diffstat (limited to 'src/backend/rewrite/rewriteDefine.c')
-rw-r--r-- | src/backend/rewrite/rewriteDefine.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index 64d46efa408..b20b6f69d32 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.22 1998/10/02 16:27:46 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.23 1998/10/06 22:14:14 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -243,6 +243,7 @@ DefineQueryRewrite(RuleStmt *stmt) Form_pg_attribute attr; char *attname; int i; + char expected_name[NAMEDATALEN + 5]; /* * So there cannot be INSTEAD NOTHING, ... @@ -269,7 +270,7 @@ DefineQueryRewrite(RuleStmt *stmt) /* * ... the targetlist of the SELECT action must - * exactly match the event relation ... + * exactly match the event relation, ... */ event_relation = heap_openr(event_obj->relname); if (event_relation == NULL) @@ -295,8 +296,8 @@ DefineQueryRewrite(RuleStmt *stmt) } /* - * ... and final there must not be another ON SELECT - * rule already. + * ... there must not be another ON SELECT + * rule already ... */ if (event_relation->rd_rules != NULL) { for (i = 0; i < event_relation->rd_rules->numLocks; i++) { @@ -309,6 +310,15 @@ DefineQueryRewrite(RuleStmt *stmt) } heap_close(event_relation); + + /* + * ... and finally the rule must be named _RETviewname. + */ + sprintf(expected_name, "_RET%s", event_obj->relname); + if (strcmp(expected_name, stmt->rulename) != 0) { + elog(ERROR, "view rule for %s must be named %s", + event_obj->relname, expected_name); + } } /* |