Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitecf4ce6

Browse files
committed
Reject non-ON-SELECT rules that are named "_RETURN".
DefineQueryRewrite() has long required that ON SELECT rules be named"_RETURN". But we overlooked the converse case: we should forbidnon-ON-SELECT rules that are named "_RETURN". In particular thisprevents using CREATE OR REPLACE RULE to overwrite a view's _RETURNrule with some other kind of rule, thereby breaking the view.Per bug #17646 from Kui Liu. Back-patch to all supported branches.Discussion:https://postgr.es/m/17646-70c93cfa40365776@postgresql.org
1 parent02d074e commitecf4ce6

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

‎src/backend/rewrite/rewriteDefine.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,18 @@ DefineQueryRewrite(char *rulename,
524524
RelationGetDescr(event_relation),
525525
false, false);
526526
}
527+
528+
/*
529+
* And finally, if it's not an ON SELECT rule then it must *not* be
530+
* named _RETURN. This prevents accidentally or maliciously replacing
531+
* a view's ON SELECT rule with some other kind of rule.
532+
*/
533+
if (strcmp(rulename,ViewSelectRuleName)==0)
534+
ereport(ERROR,
535+
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
536+
errmsg("non-view rule for \"%s\" must not be named \"%s\"",
537+
RelationGetRelationName(event_relation),
538+
ViewSelectRuleName)));
527539
}
528540

529541
/*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp