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

src/backend/rewrite/rewriteHandler.c

index a317764c43c2bfdb2315412e3e8321b1d91a11be..73c8dbab12740b7834141c48410ff3ab38a9296d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteHandler.c,v 1.151 2005/04/28 21:47:14 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteHandler.c,v 1.152 2005/05/29 18:34:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -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);
            }