diff options
Diffstat (limited to 'src/backend/rewrite/rewriteHandler.c')
-rw-r--r-- | src/backend/rewrite/rewriteHandler.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index c55fb14e081..8a9a703c129 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -1276,10 +1276,7 @@ matchLocks(CmdType event, if (oneLock->event == event) { if (parsetree->commandType != CMD_SELECT || - (oneLock->attrno == -1 ? - rangeTableEntry_used((Node *) parsetree, varno, 0) : - attribute_used((Node *) parsetree, - varno, oneLock->attrno, 0))) + rangeTableEntry_used((Node *) parsetree, varno, 0)) matching_locks = lappend(matching_locks, oneLock); } } @@ -1295,7 +1292,6 @@ static Query * ApplyRetrieveRule(Query *parsetree, RewriteRule *rule, int rt_index, - bool relation_level, Relation relation, List *activeRIRs, bool forUpdatePushedDown) @@ -1309,8 +1305,6 @@ ApplyRetrieveRule(Query *parsetree, elog(ERROR, "expected just one rule action"); if (rule->qual != NULL) elog(ERROR, "cannot handle qualified ON SELECT rule"); - if (!relation_level) - elog(ERROR, "cannot handle per-attribute ON SELECT rule"); if (rt_index == parsetree->resultRelation) { @@ -1632,14 +1626,6 @@ fireRIRrules(Query *parsetree, List *activeRIRs, bool forUpdatePushedDown) if (rule->event != CMD_SELECT) continue; - if (rule->attrno > 0) - { - /* per-attr rule; do we need it? */ - if (!attribute_used((Node *) parsetree, rt_index, - rule->attrno, 0)) - continue; - } - locks = lappend(locks, rule); } @@ -1664,7 +1650,6 @@ fireRIRrules(Query *parsetree, List *activeRIRs, bool forUpdatePushedDown) parsetree = ApplyRetrieveRule(parsetree, rule, rt_index, - rule->attrno == -1, rel, activeRIRs, forUpdatePushedDown); |