Avoid unnecessary call of rangeTableEntry_used() for the result relation
authorTom Lane <[email protected]>
Sun, 29 May 2005 18:34:57 +0000 (18:34 +0000)
committerTom Lane <[email protected]>
Sun, 29 May 2005 18:34:57 +0000 (18:34 +0000)
of a query.

src/backend/rewrite/rewriteHandler.c

index 7f33b904a81576f9c96ce6ee64d086974ce06d6c..f3362aeb27b1d588046137628b1c22f3b74e444f 100644 (file)
@@ -699,7 +699,6 @@ ApplyRetrieveRule(Query *parsetree,
                                  int rt_index,
                                  bool relation_level,
                                  Relation relation,
-                                 bool relIsUsed,
                                  List *activeRIRs)
 {
        Query      *rule_action;
@@ -870,7 +869,6 @@ fireRIRrules(Query *parsetree, List *activeRIRs)
                RuleLock   *rules;
                RewriteRule *rule;
                LOCKMODE        lockmode;
-               bool            relIsUsed;
                int                     i;
 
                ++rt_index;
@@ -901,9 +899,8 @@ fireRIRrules(Query *parsetree, List *activeRIRs)
                 * part of the join set (a source table), or is referenced by any
                 * Var nodes, or is the result table.
                 */
-               relIsUsed = rangeTableEntry_used((Node *) parsetree, rt_index, 0);
-
-               if (!relIsUsed && rt_index != parsetree->resultRelation)
+               if (rt_index != parsetree->resultRelation &&
+                       !rangeTableEntry_used((Node *) parsetree, rt_index, 0))
                        continue;
 
                /*
@@ -978,7 +975,6 @@ fireRIRrules(Query *parsetree, List *activeRIRs)
                                                                                          rt_index,
                                                                                          rule->attrno == -1,
                                                                                          rel,
-                                                                                         relIsUsed,
                                                                                          activeRIRs);
                        }