diff options
| author | Peter Eisentraut | 2013-08-15 03:00:34 +0000 |
|---|---|---|
| committer | Peter Eisentraut | 2013-08-15 03:02:59 +0000 |
| commit | 32f7c0ae1725031e8ed3620e06e94007a171d6d5 (patch) | |
| tree | 40df098ed449fe1238d16a36081e3b19629f1169 /src/backend | |
| parent | 1b1d3d92c3ec1179c65756f60a1eb477793488ea (diff) | |
Improve error message when view is not updatable
Avoid using the term "updatable" in confusing ways. Suggest a trigger
first, before a rule.
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/executor/execMain.c | 6 | ||||
| -rw-r--r-- | src/backend/rewrite/rewriteHandler.c | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 038f064931..791f3361d7 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -976,7 +976,7 @@ CheckValidResultRel(Relation resultRel, CmdType operation) (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("cannot insert into view \"%s\"", RelationGetRelationName(resultRel)), - errhint("To make the view insertable, provide an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT trigger."))); + errhint("To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule."))); break; case CMD_UPDATE: if (!trigDesc || !trigDesc->trig_update_instead_row) @@ -984,7 +984,7 @@ CheckValidResultRel(Relation resultRel, CmdType operation) (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("cannot update view \"%s\"", RelationGetRelationName(resultRel)), - errhint("To make the view updatable, provide an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger."))); + errhint("To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule."))); break; case CMD_DELETE: if (!trigDesc || !trigDesc->trig_delete_instead_row) @@ -992,7 +992,7 @@ CheckValidResultRel(Relation resultRel, CmdType operation) (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("cannot delete from view \"%s\"", RelationGetRelationName(resultRel)), - errhint("To make the view updatable, provide an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger."))); + errhint("To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule."))); break; default: elog(ERROR, "unrecognized CmdType: %d", (int) operation); diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index 5c6763e17b..c55fb14e08 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -2344,7 +2344,7 @@ rewriteTargetView(Query *parsetree, Relation view) errmsg("cannot insert into view \"%s\"", RelationGetRelationName(view)), errdetail_internal("%s", _(auto_update_detail)), - errhint("To make the view insertable, provide an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT trigger."))); + errhint("To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule."))); break; case CMD_UPDATE: ereport(ERROR, @@ -2352,7 +2352,7 @@ rewriteTargetView(Query *parsetree, Relation view) errmsg("cannot update view \"%s\"", RelationGetRelationName(view)), errdetail_internal("%s", _(auto_update_detail)), - errhint("To make the view updatable, provide an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger."))); + errhint("To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule."))); break; case CMD_DELETE: ereport(ERROR, @@ -2360,7 +2360,7 @@ rewriteTargetView(Query *parsetree, Relation view) errmsg("cannot delete from view \"%s\"", RelationGetRelationName(view)), errdetail_internal("%s", _(auto_update_detail)), - errhint("To make the view updatable, provide an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger."))); + errhint("To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule."))); break; default: elog(ERROR, "unrecognized CmdType: %d", |
